Doctrine2 и MongoDB Query для встроенного массива встроенного массива ссылочных документов в документе

У меня есть коллекция Customer которые имеют несколько Order,
Order является встроенным массивом в Customer коллекция.
Внутри одного Order есть @ReferencedMany к Product коллекция.

Теперь я хочу сделать некоторые отчеты по каждому Product это Customer когда-либо купил.

Каков будет MongoDB способ найти все продукты для этого клиента и добавить фильтры по этому запросу. Я не хочу зацикливать каждый заказ, а затем извлекать все продукты и помещать их в коллекцию Doctrine ArrayCollection.

Есть ли прямой способ запроса этих продуктов?

1

Решение

Mongo DB не получает ссылки автоматически в одном запросе. Возможно, некоторые драйверы поддерживают такую ​​функциональность и могут выдавать подзапросы, прозрачные для пользователя.

Вы можете объединить данные, требуемые для отчета, в одну коллекцию, например, с помощью шаблона map-Reduce, или встроить данные продукта в Customer. Но, как следствие, запросы на Product станут более сложными.

Вы можете отменить нормализацию данных и дублировать некоторые данные Продукта, необходимые для отчетов в коллекции клиентов. Тогда вам придется иметь дело с синхронизацией этих коллекций.

Работая над тем же вопросом, я пришел к выводу, что если вы хотите отразить связи между объектами, которые вы должны использовать реляционный база данных 🙂

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]