如何更新mongo db中具有给定值的指定字段

问题描述

在这里我想更新一个给定的文档,如下所示

{
    
    "emailid": "xxx.gmail","user_devices": [],"devices": [{
        "created_time": 1607153351,"token": 123
    },{
        "created_time": 1807153371,"token": 1345
    }]
}

在这里,我需要使用 1345 的令牌更新现场设备,并添加一个新字段,例如 "Newfield":"newfield",其中最终输出如下所示

{
    
    "emailid": "xxx.gmail","token": 1345,"Newfield":"newfield"

    }]
}

如何像这样更新mongo db。预先感谢您的回答。

解决方法

db.products.update({
  "devices.token": 1345 //Matching condition
},{
  $set: {
    "devices.$.t": 2 //Updates the matched element in the array
  }
})

您可以使用 positional operator - Reference