如何修改mongo文档中数组元素的内容
@ 归零 | 星期一,三月 30 日,2020 年 | 1 分钟阅读 | 更新于 星期一,三月 30 日,2020 年

在平时开发中,我们可能会遇到修改mongodb文档数组里边元素的值,那如何修改数组中元素的值呢? 其实mongodb 提供了update set指令, 可以实现我们的需求,具体如下:

比如,我们的文档格式如下:

{
    "categories": ["新闻","图片"]
}

我们想要把所有文档中categories数组中的新闻改为综合,mongo的修改指令如下:

db.getCollection("test").updateMany({"categories": "新闻"}, {"$set":{"categories.$":"综合"}})

如果数组中的内容是map,格式如下:

{
    "categories": [
        {
            "name": "新闻"
        }, 
        {
           "name": "图片" 
        }
    ]
}

要想将新闻改为综合,指令应该如下:

db.getCollection("test").updateMany({"categories.name": "新闻"}, {"$set":{"categories.0.name":"综合"}})

其中的categories.0.name表示categories数组的第一个元素name值, 修改后的结果:

{
    "categories": [
        {
            "name": "综合"
        }, 
        {
           "name": "图片" 
        }
    ]
}

© 2014 - 2022 Lionel's Blog

Powered by Hugo with theme Dream.