我有一个Customer
的集合,其中包含多个Order
。
Order
是Customer
集合中的嵌入数组。
在一个Order
内,@ReferencedMany
集合有一个Product
。
我现在想要对Product
曾经购买的每个Customer
做一些报道。
MongoDB如何为该客户查找所有产品并在此查询中添加过滤器。我不想循环每个订单然后获取所有产品并将它们放在Doctrine ArrayCollection中。
有没有直接查询这些产品的方法?
答案 0 :(得分:1)
Mongo DB在单个查询中不会自动获取引用。也许某些驱动程序支持此类功能,并且可能会为用户生成透明的子查询。
例如,您可以使用map-reduce模式将报告所需的数据汇总到一个集合,或者将Product data嵌入到Customer中。但结果是对产品的查询将变得更加复杂。
您可以对数据进行反规范化,并复制客户集合中报告所需的一些产品数据。然后你将不得不处理这些集合的同步。
在同一个问题上,我得出的结论是,如果你想在对象之间反映关系,你应该使用关系数据库:)