在mongodb中更新多个文档

时间:2018-12-22 11:15:47

标签: mongodb

我在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,并将5c188a9959f6cf1258f4cb015c0a2a8897e71a0d28b910ac项目的isActive更新为false ,表示用户其他项目。

1 个答案:

答案 0 :(得分:0)

因此,基本上,您必须使用两个查询,一个查询到navigation $setisActive,另一个查询到false $setisActive特定的true

1)将userId设置为isActive

true

2)到Model.update( { "projectId": "5c188a9959f6cf1258f4cb01", "userId": "5c0a29e597e71a0d28b910aa" }, { "$set": { "isActive": true }} ) 对同一个$set的其他false的{​​{1}}有效

projectId