&引用;切换";MongoDB中的查询
可能重复:&引用;切换";MongoDB中的查询,mongodb,Mongodb,可能重复: 我需要更新文档值,“切换”它: 集合是“Comment”,它具有布尔标志“isAdmin” 我将更新一个给定的注释id,如果为真,则将isAdmin设置为false,反之亦然 但是,这不起作用: db.comments.update( { "id": "xxx" }, { $set: { isAdmin: $not isAdmin } } ); 正确的语法是什么?在这样的更新中,您不能引用您找到的文档。您需要执行查询以查找文档,然后在知道值是什么后执行更新。两步流程: var d
我需要更新文档值,“切换”它: 集合是“Comment”,它具有布尔标志“isAdmin” 我将更新一个给定的注释id,如果为真,则将isAdmin设置为false,反之亦然 但是,这不起作用:
db.comments.update( { "id": "xxx" }, { $set: { isAdmin: $not isAdmin } } );
正确的语法是什么?在这样的更新中,您不能引用您找到的文档。您需要执行查询以查找文档,然后在知道值是什么后执行更新。两步流程:
var doc = db.comments.findOne({id:"xxx"});
db.comments.update({id:"xxx"}, {$set: {isAdmin: !doc.isAdmin}});
更新:
此答案已过时一段时间(自2.5.2起):
现在可以通过
$bit
操作符xor
,并使用findOneAndUpdate
来避免两个单独的命令。这可能会有帮助:如何更新多个文档(使用multi:true)?