首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >项目值作为键,嵌入文档作为mongo中的值。

项目值作为键,嵌入文档作为mongo中的值。
EN

Stack Overflow用户
提问于 2018-11-26 07:41:57
回答 1查看 2.7K关注 0票数 4

在mongodb中,我有一个结构文档:

代码语言:javascript
复制
{
    "phone":"123",
    "friends": {
                    "contacts":{
                                    "234":2,
                                    "345":5
                               }
               }
}

我希望输出看起来像:

代码语言:javascript
复制
{
    "123": {
                "234":2,
                "345":5
           }
}

我要寻找多个解决方案。看上去不像是找到解决办法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-26 10:52:35

您可以使用$arrayToObject创建自定义键(以k-v对数组作为参数),然后可以使用$replaceRoot获取自定义根对象,尝试:

代码语言:javascript
复制
db.collection.aggregate([
    {
        $match: {
            phone: { $exists: true },
            "friends.contacts": { $exists: true }
        }
    },
    {
        $addFields: {
            array: [{
                k: "$phone",
                v: "$friends.contacts"
            }]
        }
    },
    {
        $replaceRoot: {
            newRoot: { $arrayToObject: "$array" }
        }
    }
])
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53476592

复制
相关文章

相似问题

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