首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MongoDB中遍历嵌套文档并返回子树?

如何在MongoDB中遍历嵌套文档并返回子树?
EN

Stack Overflow用户
提问于 2020-05-12 19:02:05
回答 1查看 162关注 0票数 1

我在MongoDB中有一个具有以下结构的文档:

代码语言:javascript
复制
{
    "k1": {
        "k11": {<extended-sub-document-11>},
        "k12": {<extended-sub-document-12>}
    },
    "k2": {
        "k21": {<extended-sub-document-21>}
    }
}

如何在k12中获取整个对象?find机制要求我提供要匹配的值。但是在这里,我只想遍历路径k1/k12,并在这个键上检索整个子文档。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-12 20:33:48

投影中使用.find(),可以尝试如下所示:

代码语言:javascript
复制
db.collection.find({}, { "k1.k12": 1})

测试: 蒙古操场

注意:您只会得到k12的值/对象,但是由于它是嵌套在k1中的,所以在输出中可以看到与k1中的k12对象相同的结构,比如:{k1: {k12: {...}}}

使用聚合的$project阶段:

代码语言:javascript
复制
db.collection.aggregate([ { $project: {_id :0,  k12: "$k1.k12" } } ])

测试: 蒙古操场

通过使用比.find()中的投影更强大的聚合.find(),您可以将字段的值分配给字段。在上面的查询中,我们使用k1.k12 (帮助获取引用字段的值)将k12字段的值赋值给字段。

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

https://stackoverflow.com/questions/61759899

复制
相关文章

相似问题

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