我需要根据要调用的函数将对象数组的属性(“活动”)的状态更改为false或true。
{
"_id": ObjectId("59fc98974aceec3e70a18715"),
"name": "Mostaganem",
"destinations": [
{
"active": true,
"seaport": ObjectId("59fc98594aceec3e70a18712")
},
{
"active": false,
"seaport": ObjectId("59fc98884aceec3e70a18714")
}
]
}
如果我在robo3T上执行此请愿书,则它会更改,但是当我通过api调用此函数时,它没有更改,您能帮我吗?
async deactivate(id) {
/* await this.update(
{ destinations: { $elemMatch: { seaport: id } } },
{ $set: { 'destinations.$.active': false } },
{ multi: true }); */
await this.update({ '_id': id }, { $set: { 'destinations.$[].active': false } });
}
async deactivate(id) {
// await this.update({ destinations: { $elemMatch: { seaport: id } } // }, { $set: { 'destinations.$.active': false } }, { multi: true });
await this.update({ '_id': id }, { $set: { 'destinations.$[].active': false } });
},
答案 0 :(得分:0)
我正在回答自己的可用情况:
{
"_id" : ObjectId("539b6b5dc7ac9bc0316e3d61")
"permissions" : {
"projects" : [
{
"edit" : true,
"view" : true,
"projectId" : ObjectId("532708cba8ed009019151b13"),
}
],
}
要更新项目权限中的视图键,请执行以下操作:
db.users.update({ _id: ObjectId("539b6b5dc7ac9bc0316e3d61"), 'permissions.projects.projectId': ObjectId("532708cba8ed009019151b13") }, { $set: {'permissions.initiatives.$.view': false }})
美元($)指向对象项目数组,我们在查询中输入了其ID,并更新了数组中的特定对象。