DoctrineODM - QueryBuilder: фильтр в поле Ссылка на документ - PullRequest
0 голосов
/ 28 мая 2018

У меня есть 2 документа, которые ссылаются друг на друга (серия и глава).В документе главы есть свойство visible, которое делает главу общедоступной.Что я ищу, так это наличие запроса для поиска серии, в которой есть хотя бы одна видимая глава.

в серии

/**
     * @var Collection
     * @ODM\ReferenceMany(
     *     targetDocument="App\Model\Document\Chapter",
     *     mappedBy="series",
     *     strategy="addToSet"
     * )
     */
    protected $chapters;

в главе

/**
     * @var Series|null
     * @ODM\ReferenceOne(
     *      targetDocument="App\Model\Document\Series",
     *      inversedBy="chapters",
     * )
     */
    protected $series;

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

Дайте мне знать, если что-то неясно.

1 Ответ

0 голосов
/ 29 мая 2018

То, что вы пытаетесь выполнить, не может быть сделано с помощью обычных запросов, поскольку MongoDB не поддерживает отношения как таковые.Что вы можете сделать, это взглянуть на конвейер агрегации и $lookup stage в частности, поскольку это скрытое левое соединение.В ODM есть отдельный конструктор агрегации , который поможет вам на этапах построения, он аналогичен в использовании построителю запросов.

...