Mongodb 更新数组字段中的特定嵌套文档

Mongodb update a specific nested document in an array field

如何更新 ID 类似于 111discharged 字段?

{
   address:'123',
   txs:[
      {id:'111',discharged:false},
      {id:'222',discharged:false}
       ]
}

解决方案 1

db.collection.update({
  address: "123",
  "txs.id": "111"
},
{
  $set: {
    "txs.$.discharged": true
  }
})

Sample Mongo Playground for Solution 1

或者

解决方案 2:使用 arrayFilters 和过滤位置运算符

db.collection.update({
  address: "123",
  
},
{
  $set: {
    "txs.$[tx].discharged": true
  }
},
{
  arrayFilters: [
    {
      "tx.id": "111"
    }
  ]
})

Sample Mongo Playground for Solution 2