我有一个特定用户的3 个项目在schedule
集合中,在每个记录(文档)中,我有字段 isActive,user
当他想要处理该项目时将设置为 true,并且只能为一个项目设置。请参阅以下记录:
{
"_id" : ObjectId("5c1e0a1cd8a20917b8564e49"),
"isActive" : true,
"projectId" : ObjectId("5c0a2a8897e71a0d28b910ac"),
"userId" : ObjectId("5c0a29e597e71a0d28b910aa"),
"hours" : 1,
},
{
"_id" : ObjectId("5c1e0a1cd8a20917b8564e4a"),
"isActive" : false,
"projectId" : ObjectId("5c188a9959f6cf1258f4cb01"),
"userId" : ObjectId("5c0a29e597e71a0d28b910aa"),
"hours" : 7,
},
{
"_id" : ObjectId("5c1e0a1cd8a20917b8564e4b"),
"isActive" : false,
"projectId" : ObjectId("5cyt2a7797e71a0d25b930ad"),
"userId" : ObjectId("5c0a29e597e71a0d28b910aa"),
"hours" : 1,
}
例如,用户已经完成了5c0a2a8897e71a0d28b910ac
这个projectId 的工作。现在他想为5c188a9959f6cf1258f4cb01
projectId工作,所以我想编写更新查询以将5c188a9959f6cf1258f4cb01
projectId 的 isActive更新为 true,并将 isActive更新为 false5c0a2a8897e71a0d28b910ac
用于5cyt2a7797e71a0d25b930ad
项目,意味着用户其他项目。
所以基本上,你必须使用两个查询之一$set
isActive
来false
和一个$set
isActive
以true
特定userId
1) 设置isActive
为true
Model.update(
{ "projectId": "5c188a9959f6cf1258f4cb01", "userId": "5c0a29e597e71a0d28b910aa" },
{ "$set": { "isActive": true }}
)
2) to $set
isActive to false
for other projectId
for the sameuserId
Model.update(
{ "projectId": { "$ne": "5c188a9959f6cf1258f4cb01" }, "userId": "5c0a29e597e71a0d28b910aa" },
{ "$set": { "isActive": false }}
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句