我有以下文件
{
"_id" : ObjectId("5d3fd27b363f482cf67300b5"),
"is_active" : true,
"is_delete" : false,
"email" : "[email protected]",
"phone" : "1234567890",
"agencies" : [
{
"employees" : [
ObjectId("5d3aeac1ea162253845ac7f8"),
ObjectId("5d3aeac1ea162253845ac7f9")
],
"company_role" : [
{
"employees" : [
ObjectId("5d3aeac1ea162253845ac7f8"),
ObjectId("5d3aeac1ea162253845ac7f9")
],
"company" : ObjectId("5d3fd27b363f482cf67300b7"),
"role" : "administrator"
},
{
"employees" : [
ObjectId("5d3aeac1ea162253845ac7f8"),
ObjectId("5d3aeac1ea162253845ac7f9")
],
"company" : ObjectId("5d3fd27b363f482cf67300b8"),
"role" : "administrator"
},
{
"employees" : [
ObjectId("5d3aeac1ea162253845ac7f8"),
ObjectId("5d3aeac1ea162253845ac7f9")
],
"company" : ObjectId("5d3fd27b363f482cf67300b9"),
"role" : "administrator"
},
{
"employees" : [
ObjectId("5d3aeac1ea162253845ac7f8"),
ObjectId("5d3aeac1ea162253845ac7f9")
],
"company" : ObjectId("5d3fd27b363f482cf67300ba"),
"role" : "administrator"
}
],
"agency" : ObjectId("5d3fd27b363f482cf67300b6")
}
],
"createdAt" : ISODate("2019-07-30T05:15:39.345Z"),
"updatedAt" : ISODate("2019-07-30T05:15:39.451Z"),
"__v" : 0
}
我想根据_id和agency.agency的条件更新employee数组。如果员工存在,则不添加或添加
我尝试了以下方法,但对我不起作用
modelName.findOneAndUpdate({ ' _id': ObjectId("5d3fd27b363f482cf67300b5"), 'agencies.agency': ObjectId("5d3fd27b363f482cf67300b6") }, { $addToSet: { "agencies.$.employees": ObjectId("5d3aeac1ea162253845ac7f1"), "agencies.$.company_role.employees": ObjectId("5d3aeac1ea162253845ac7f1") } },{new:true})
我正在使用猫鼬更新记录
您可以使用两个有用的更新运算符:$ [<identifier>]和$ []:
modelName.findOneAndUpdate({ '_id': ObjectId("5d3fd27b363f482cf67300b5") },
{
$addToSet: {
"agencies.$[agency].employees": ObjectId("5d3aeac1ea162253845ac7f1"),
"agencies.$[agency].company_role.$[].employees": ObjectId("5d3aeac1ea162253845ac7f1"),
}
},
{
arrayFilters: [ { "agency.agency": ObjectId("5d3fd27b363f482cf67300b6") } ]
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句