【发布时间】:2016-08-25 05:39:33
【问题描述】:
我发现很多关于如何根据某些子文档标准查找文档的问题,但是是否可以检索子文档本身,而不是包含它们的文档?
注意 - 建议的副本不是副本。该OP询问如何返回集合中的文档,每个文档都有一个匹配子文档的子集。我的问题是,如何仅检索匹配的子文档。
来自这样的集合:
{ name:"a" subs: [ { subname:"aa", value: 1 }, { subname:"ab", value: 2 } ] }
{ name:"b" subs: [ { subname:"ba", value: 2 }, { subname:"bb", value: 3 } ] }
我想做一个查询,它只产生与查询匹配的子文档,比如value === 2。
我试过了:
myCollection.find().elemMatch("subs", { value:2 })
这很接近,但它只是找到(在示例数据中)两个上层文档,因为它们的子元素匹配。我知道我可以从结果中挑选出子文档,但我希望查询来完成这项工作,并产生这个......
{ subname:"ab", value: 2 }
{ subname:"ba", value: 2 }
... 即只有匹配的子文档。可能吗?提前致谢。
【问题讨论】:
标签: mongodb