MongoDB 更新数组条目

Posted

技术标签:

【中文标题】MongoDB 更新数组条目【英文标题】:MongoDB update arrays entry 【发布时间】:2021-12-24 22:09:56 【问题描述】:

我有一个文档要像这样的 Mongodb 更新对象数组:

    
    "myArray": [
            
              "Key1": "string",
              "key2": 
                "entry": "aaa"
              
            ,
            
              "Key1": "string",
              "key2": 
                "entry": "bbb"
              
            
          ]
    

我想修改 myArray 的每个对象中的 key2 字段。预期的结果应该是:

    
    "myArray": [
            
              "Key1": "string",
              "key2Modified":"aaa"
            ,
            
              "Key1": "string",
              "key2Modified":"bbb"
            
          ]
    

有什么帮助吗?

【问题讨论】:

查看array update operators 和arrayFilters。 【参考方案1】:

$set 中使用$map

db.collection.update(,
[
  
    $set: 
      "myArray": 
        $map: 
          input: "$myArray",
          as: "a",
          in: 
            Key1: "$$a.Key1",
            key2Modified: "$$a.key2.entry"
          
        
      
    
  
])

mongoplayground

【讨论】:

以上是关于MongoDB 更新数组条目的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 更新和聚合问题:跳过聚合

将对象数组添加到 mongodb 问题

$addFields 用于在 Python 中使用 MongoDB 的特定条目

子数组中的 MongoDB 更新查询

使用 Spring Data MongodB 更新嵌入式 mongodb 文档中的数组字段?

Mongodb怎样更新像这样的文档,数组里面有子文档