Doctrine2和MongoDB查询Document中引用文档的嵌入数组的嵌入数组

时间:2014-12-22 11:22:47

标签: php mongodb doctrine-orm mongodb-query

我有一个Customer的集合,其中包含多个OrderOrderCustomer集合中的嵌入数组。 在一个Order内,@ReferencedMany集合有一个Product

我现在想要对Product曾经购买的每个Customer做一些报道。

MongoDB如何为该客户查找所有产品并在此查询中添加过滤器。我不想循环每个订单然后获取所有产品并将它们放在Doctrine ArrayCollection中。

有没有直接查询这些产品的方法?

1 个答案:

答案 0 :(得分:1)

Mongo DB在单个查询中不会自动获取引用。也许某些驱动程序支持此类功能,并且可能会为用户生成透明的子查询。

例如,您可以使用map-reduce模式将报告所需的数据汇总到一个集合,或者将Product data嵌入到Customer中。但结果是对产品的查询将变得更加复杂。

您可以对数据进行反规范化,并复制客户集合中报告所需的一些产品数据。然后你将不得不处理这些集合的同步。

在同一个问题上,我得出的结论是,如果你想在对象之间反映关系,你应该使用关系数据库:)