你好我有一个奇怪的问题
我看了前面的几个问题,但我遇到了一个问题
基本上我有一个包含布尔值的文档
此布尔值称为enabled
我想使用findOneAndUpdate函数切换它
{ $set: { enabled: { $not: "$enabled" } } }
这是我根据前面的问题得出的结论
但是当我尝试的时候结果就是这样
enabled: { '$not': '$enabled' }
下面是我的完整代码
db.findOneAndUpdate({
_id: "Sample"
}, {
$set: {
enabled: {
$not: "$enabled"
}
}
}, {
new: true
}, function(err, result) {})
2条答案
按热度按时间s4n0splo1#
问题是您试图在遗留更新中使用$not聚合操作符。
为了使用聚合运算符,您需要使用带有聚合管道的更新。
对于您的示例,这应该非常简单,只需将更新 Package 在一个数组中,如下所示:
f87krz0w2#
可以使用**$bit**运算符切换启用字段的值。
每次更新时,值enabled将切换(1到0,0到1)。
或者,您可以按如下方式使用set方法: