首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在mongo中查找子文档

在mongo中查找子文档
EN

Stack Overflow用户
提问于 2016-04-29 23:13:45
回答 1查看 1.2K关注 0票数 0

我发现了很多关于如何根据某个子文档标准查找文档的问题,但是是否有可能自己检索子文档,而不是检索包含它们的文档?

注:建议的副本不是重复的。该OP询问如何在集合中返回文档,每个文档都有匹配子文档的子集。我的问题是,如何只检索匹配的子文档。

像这样的收藏品:

代码语言:javascript
运行
复制
{ name:"a" subs: [ { subname:"aa", value: 1 }, { subname:"ab", value: 2 } ] }
{ name:"b" subs: [ { subname:"ba", value: 2 }, { subname:"bb", value: 3 } ] }

我想要执行一个查询,它只生成一个匹配查询的子文档,比如value === 2

我试过这个:

代码语言:javascript
运行
复制
myCollection.find().elemMatch("subs", { value:2 })

这是接近的,但它只是发现(在示例数据中),这两个高级文档,因为它们的子元素匹配。我知道我可以从结果中选择子文档,但我希望查询能够完成这项工作,并生成以下内容.

代码语言:javascript
运行
复制
{ subname:"ab", value: 2 }
{ subname:"ba", value: 2 }

..。也就是只有匹配的子文档。有可能吗?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-29 23:27:29

可以在查找的第二个参数中指定返回的内容。用你的数据试试这个:

代码语言:javascript
运行
复制
db.myCollection.find( { subs: { $elemMatch:  { "value" : 2 } } }, { "subs.$": 1 }  );

此外,这里还有一些很好的例子:

https://docs.mongodb.org/v3.0/reference/operator/projection/positional/#proj.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36948856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档