我有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页面上的复杂参考页面,但我不认为它可以帮助我,因为我必须查询另一个文档(章节),看看是否至少有一个可见
如果不清楚,请告诉我。
答案 0 :(得分:0)
由于MongoDB本身不支持关系,因此您无法完成正常查询。你可以做的是看看聚合管道和$lookup
stage,特别是这是一个伪装的左连接。 ODM有一个单独的aggregation builder来帮助您构建阶段,它与查询构建器的使用类似。