【发布时间】:2022-01-04 18:12:02
【问题描述】:
用户:
{
_id: "userID",
array_1:[],
array_2:[]
}
我需要对此文档进行两次更新:
-
array_1包含具有唯一id属性的对象。我需要找到id=targetID的位置并将其替换为newObject,如下所示:
User.updateOne(
{
_id: userID,
"array_1.id": targetID
},
{
"$set":{"array_1.$":newObject}
}
)
-
array_2包含对象,其中多个对象可以具有相同的id值。我需要更新array_2中所有对象的 2 个属性,其中id=targetID,如下所示:
User.updateOne(
{
_id: userID,
"array_2.id": targetID
},
{
"$set": {
"array_2.$[elem].property_1": new_property_1,
"array_2.$[elem].property_2": new_property_2
}
},
{
"arrayFilters": [{ "elem.id": targetID }],
"multi": true
}
)
如果我单独运行这两个可以正常工作,但我如何将两者结合到一个函数中?
【问题讨论】:
标签: javascript mongodb mongoose mongodb-query