加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 如何在MongoDB中向字典添加另一个值?

发布时间:2020-12-15 21:53:48 所属栏目:安全 来源:网络整理
导读:这是我正在尝试做的一个例子,因为我无法解释我的意思. 我在mongo CLI中执行它:db.posts.insert({name:“Hello,world!,body:”这是我的第一篇博文.快乐阅读
这是我正在尝试做的一个例子,因为我无法解释我的意思.

我在mongo CLI中执行它:db.posts.insert({name:“Hello,world!,body:”这是我的第一篇博文.快乐阅读!“,评论:[]}).我想做的是更新该条目以向评论词典添加评论.

我如何使用db.posts.update()实现这一目标?

解决方法

OP的问题和示例不匹配.他实际上想要在文档中的数组中插入一个字段,这意味着

db.posts.update({name: "Hello,world!" },{ $push: {comments: "First comment!"}});

工作得很好.

但是,如果要将值或子文档添加到字典,则可以使用$set命令.以此文档为例:

{
    "_id": {
        "$oid": "538420b2862a656e9e99fc93"
    },"name": "Farmer John","items": {
        "peaches": 5,"bananas": 10
    }
}

假设您希望在项目中添加“apples”:2.命令是

db.collection.update({"name": "Farmer John"},{"$set": {"items.apples": 2}});

您的文档将如下所示:

{
    "_id": {
        "$oid": "538420b2862a656e9e99fc93"
    },"bananas": 10,"apples: 2
    }
}

请注意,这也适用于插入子文档,因此我们可以修改原始示例:

{
    "_id": {
        "$oid": "538420b2862a656e9e99fc93"
    },"items": {
        "peaches": {
            "yellow": 5,"white": 3
        }
    }
}

让我们插入4个格兰尼史密斯苹果和8个富士苹果.

db.collection.update({"name": "Farmer John"},{"$set": {"items.apples": {"fuji": 8,"granny smith": 4}}});

我们的文件现在是:

{
    "_id": {
        "$oid": "538420b2862a656e9e99fc93"
    },"white": 3
        },"apples": {
            "fuji": 8,"granny smith": 4
        }
    }
}

最后一条评论:请注意,如果子文档或字段已经存在,那么它将被$set命令覆盖.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读