我认为这可能与这个问题有点类似:如何在嵌入式数组文档中使用图形查找聚合,但始终没有答案,我也没有发表评论以查看作者是否找到解决方案的声誉。
尽管该集合将包含成千上万的文档,但是在查询时我只会被其中的1个约束。当前的目的是使用一个初始$match阶段,该阶段将产生一个文档。
样本文件
{
attrA: 'foo',
attrB: 'bar',
versions: [
{
status: "live",
things: [
{
key: "thing_1",
parent: null
slug: "thing-1-slug"
},
{
key: "thing_2",
parent: "thing-1-slug",
slug: "thing-2-slug"
},
{
key: "thing_3",
parent: "thing-2-slug",
slug: "thing-3-slug"
},
{
key: "thing_4",
parent: null,
slug: "thing-4-slug"
},
{
key: "thing_5",
parent: "thing-2-slug",
slug: "thing-5-slug"
},
{
key: "thing_6",
parent: "thing-4-slug",
slug: "thing-6-slug"
},
{
key: "thing_7",
parent: null,
slug: "thing-7-slug"
}
]
},
{ …Run Code Online (Sandbox Code Playgroud)