DoctrineODM - QueryBuilder:过滤文档参考字段

时间:2018-05-27 23:32:37

标签: query-builder doctrine-odm

我有2个相互引用的文件(系列和章节)。 在章节文件中,有一个"可见"使章节公开可见的财产。 我搜索要做的是,通过查询来搜索至少有一个章节可见的系列。

系列

/**
     * @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 :(得分:0)

由于MongoDB本身不支持关系,因此您无法完成正常查询。你可以做的是看看聚合管道和$lookup stage,特别是这是一个伪装的左连接。 ODM有一个单独的aggregation builder来帮助您构建阶段,它与查询构建器的使用类似。