我发现很多关于如何根据某些子文档标准查找文档的问题,但是是否可以检索子文档本身,而不是包含它们的文档?在mongo中查找子文档
注 - 建议的副本不是重复的。该OP询问如何返回一个集合中的文档,每个文档都有一个匹配子文档的子集。我的问题是,如何检索只有匹配的子文档。
从集合是这样的:
{ name:"a" subs: [ { subname:"aa", value: 1 }, { subname:"ab", value: 2 } ] }
{ name:"b" subs: [ { subname:"ba", value: 2 }, { subname:"bb", value: 3 } ] }
我想这样做产生的查询,只是SUBDOCS匹配查询,比如,其中value === 2
。
我尝试这样做:
myCollection.find().elemMatch("subs", { value:2 })
这就是接近,但它只是发现(在本例中的数据),这两个上级的文件,因为它们的子元素相匹配。我知道我可以挑选出从结果子文档,但我想查询做的工作,并产生这个...
{ subname:"ab", value: 2 }
{ subname:"ba", value: 2 }
...匹配即只是SUBDOCS。可能吗?提前致谢。
[只检索查询的元素可能重复的对象数组在MongoDB集合](http://stackoverflow.com/questions/3985214/retrieve-only-the-queried-element-in-an-object-array-in-mongodb-collection) – styvane