如何更新 Mongoose(Mongodb)中嵌套对象数组中的值?

How to update a value in a array of nested object in Mongoose(Momgodb)?

{ 
    "_id" : ObjectId("6221f3a818880f14e3c33040"), 
    "__v" : 0, 
    "createdAt" : ISODate("2022-03-04T11:10:32.753Z"), 
    "pm" : { 
        "checkList" : [ 
            { 
                "ch_id" : "621eff4e0ed5c751adaa42fb", 
                "status" : "statu", 
                "dateMonthYear" : 1646286480139.0, 
                "val" : "Gopi", 
                "remarks" : "Good", 
                "_id" : ObjectId("6221f3a80a703519a4406e6c") 
            }, 
            { 
                "ch_id" : "621eff4e0ed5c751adaa42fb", 
                "status" : "status", 
                "dateMonthYear" : 1646286480139.0, 
                "val" : "Gopi", 
                "remarks" : "Good", 
                "_id" : ObjectId("6221f3a80a703519a4406e6e") 
            } 
        ] 
    }, 
    "updatedAt" : ISODate("2022-03-04T11:56:59.662Z") 
}

以上是集合,其中我需要使用“_id”作为查找条件来更新 pm 对象内的清单数组。 例如,我需要更改 _id 的 valremarksObjectId("6221f3a80a703519a4406e6e")

如何实现?

请试试这个方法
使用位置操作“$”

let collection = "已删除" db.getCollection(collection).findOneAndUpdate({"data._id":ObjectId("5f2c0ebd7493c812cf59c52c")},{"$set":{"data.$.isDefault" : false}},{new:true})

You can update a value in an array of nested objects in Mongoose

`db.users.update({"pm.checkList.ch_id" : "621eff4e0ed5c751adaa42fb"},{ $set:{
   "pm.checkList.$.val" : "nop",
   "pm.checkList.$.remarks" : "bed",
}})`