Database
[{"postId":ObjectId("62dffd0acb17483cf015375f"),"userId":ObjectId("62dff9584f5b702d61c81c3c"),"state":[{"id":ObjectId("62dffc49cb17483cf0153220"),"notes":"these are my custom notes!","lvl":3,},{"id":ObjectId("62dffc49cb17483cf0153222"),"notes":"hello again","lvl":0,},]},]
Query
db.collection.update({"postId":ObjectId("62dffd0acb17483cf015375f"),"userId":ObjectId("62dff9584f5b702d61c81c3c")},[{$set:{state:{$ifNull:["$state",[]]},}},{$set:{state:{$concatArrays:[{$map:{input:"$state",in:{$mergeObjects:[{$cond:[{$and:[{$in:[ObjectId("62dffc49cb17483cf0153222"),"$state.id"]},{$eq:[0,0]}]},{newField:5},{},]},"$$this"]}}},{$cond:[{$not:{$in:[ObjectId("62dffc49cb17483cf0153222"),"$state.id"]}},[{"id":ObjectId("62dffc49cb17483cf0153222"),"lvl":1}],[]]}]}}}],{"new":true,"upsert":true,})