在 mongoDb 中实现一对多关系的最佳方式
best way to implement one-to-many realationships in mongoDb
大多数系统都有一些用户在做一些事情(订购、参加考试、填写一些表格等),并且在用户集合中有与用户相关的信息。例如年龄。
假设订单系统:
如果我们只在订单集合中保留 userId 并尝试获取特定时间范围内 25 岁以下用户所下订单的数量,这在某种程度上是不可能的。 (mongodb 聚合性能非常糟糕,无法按预期工作)。
如果我们将用户对象保留在订单集合中,我们的数据库会变得非常庞大。但是可以使用用户字段进行查询。
那么,保存此类信息的最佳方式是什么。还有第三种方法吗?!
我会在每个用户对象中都有一个订单集合。例如,要计算 25 岁以下的每个用户的订单数,您只需要计算年龄属性 <25 的用户对象,并找到 SUM 每个用户对象的每个订单集合中的订单数.
我会这样做,因为它更易于维护,用户数量总是 <= 订单数量,所以如果按照您将用户对象保存在订单对象中的方法不会那么庞大。
大多数系统都有一些用户在做一些事情(订购、参加考试、填写一些表格等),并且在用户集合中有与用户相关的信息。例如年龄。 假设订单系统:
如果我们只在订单集合中保留 userId 并尝试获取特定时间范围内 25 岁以下用户所下订单的数量,这在某种程度上是不可能的。 (mongodb 聚合性能非常糟糕,无法按预期工作)。
如果我们将用户对象保留在订单集合中,我们的数据库会变得非常庞大。但是可以使用用户字段进行查询。
那么,保存此类信息的最佳方式是什么。还有第三种方法吗?!
我会在每个用户对象中都有一个订单集合。例如,要计算 25 岁以下的每个用户的订单数,您只需要计算年龄属性 <25 的用户对象,并找到 SUM 每个用户对象的每个订单集合中的订单数.
我会这样做,因为它更易于维护,用户数量总是 <= 订单数量,所以如果按照您将用户对象保存在订单对象中的方法不会那么庞大。