use*_*509 5 javascript mongodb node.js
抱歉,如果这是非常基本的,但我是 mongodb 新手并且无法找到答案:
假设我正在执行以下操作:
db.collection("bugs").updateOne({ _id: searchId }, { $set: { "fixed": true }}
Run Code Online (Sandbox Code Playgroud)
如何将“固定”设置为与“固定”的最后一个值相反?没有任何额外的查询?就像是{ $set: { "fixed": !fixed }}
目前,通过坚持存储布尔值的想法,在 MongoDB 中仅通过一次操作来实现这一点实际上是不可能的(在 MongoDB 的未来版本中可能是可能的)。但是,有一种解决方法可以通过存储位(0 或 1)来表示 true 或 false 而不是布尔值,并对 MongoDB 中的位执行按位异或运算,如下所示:
db.collection("bugs").updateOne(
{
_id: searchId
},
{
$bit : {
fixed: {
xor: NumberInt(1)
}
}
}
)
Run Code Online (Sandbox Code Playgroud)
请注意,您还必须在固定属性中存储0和1来表示,因为MongoDB 默认将所有数字视为浮点值。NumberInt(0)falseNumberInt(1)true
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |