我在schedule
集合中有一个特定用户的项目,在每个记录(文档)中,我都有一个字段isActive,其中{{1} }在他要从事该项目时将设置为true,并且只能为一个项目设置。请参见以下记录:
user
例如,用户已完成{
"_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,
}
这个 projectId 的工作。现在他想为5c0a2a8897e71a0d28b910ac
projectId工作,所以我想编写更新查询以将5c188a9959f6cf1258f4cb01
projectId的isActive更新为true,并将5c188a9959f6cf1258f4cb01
和5c0a2a8897e71a0d28b910ac
项目的isActive更新为false ,表示用户其他项目。
答案 0 :(得分:0)
因此,基本上,您必须使用两个查询,一个查询到navigation
$set
到isActive
,另一个查询到false
$set
到isActive
特定的true
1)将userId
设置为isActive
true
2)到Model.update(
{ "projectId": "5c188a9959f6cf1258f4cb01", "userId": "5c0a29e597e71a0d28b910aa" },
{ "$set": { "isActive": true }}
)
对同一个$set
的其他false
的{{1}}有效
projectId