📜  MongoDB 按位更新运算符

📅  最后修改于: 2022-05-13 01:56:58.288000             🧑  作者: Mango

MongoDB 按位更新运算符

MongoDB 提供了一个 $bit运算符来执行字段的按位更新。此运算符支持按位异或、按位或和按位与运算。

句法:

{ $bit: { : { :  } } }

要点:

  • 仅对整数字段使用 $bit运算符(32 位整数或 64 位整数)
  • 要在嵌入/嵌套文档或数组中指定字段,请使用点表示法。
  • mongo shell 中的所有数字都是 double 而非整数。因此,您需要使用 NumberInt() 或 NumberLong() 构造函数来指定整数。
  • 您可以根据需要在 update()、findAndModify() 等方法中使用此运算符。

按位或:

在这个例子中,我们使用 update() 方法将文档(id:g_f_g_2)的 number 字段的值更新为当前值 NumberLong( 5)(即 0101)和 NumberInt(9)(即 1001):

db.bitexample.update({_id: "g_f_g_2"}, 
   {$bit: {number: {or: NumberInt(9)}}})

按位与:

在这个例子中,我们使用 update() 方法将文档(id:g_f_g_1)的 number 字段的值更新为按位的结果(即 NumberInt(1) 或 0001),并在当前值 NumberInt( 11)(即 1011)和 NumberInt(5)(即 0101):

db.bitexample.update({_id: "g_f_g_1"},
    {$bit: {number: {and: NumberInt(5)}}})

按位异或:

在这个例子中,我们使用 update() 方法将文档(id:g_f_g_3)的 number 字段的值更新为当前值 NumberLong( 7)(即 0111)和 NumberLong(13)(即 1101):

db.bitexample.update({_id: "g_f_g_3"}, 
   {$bit: {number: {xor: NumberLong(13)}}})