$bitsAllSet 作为按位查询运算符

适用对象: MongoDB vCore

$bitsAllSet 运算符用于匹配所有指定的位位置均已设置(即为 1)的文档。 此运算符用于对存储整数值的字段执行位运算。 它可用于需要根据整数字段内设置的特定位来筛选文档的场景。

语法

{
  <field>: { $bitsAllSet: <bitmask> }
}
  • <field>:要对其执行位运算的文档中的字段。
  • <bitmask>:指示必须在字段值中设置哪些位的位掩码。

示例

假设有一个名为 stores 的集合,其中包含具有各种字段的文档。 若要查找 storeId 字段设置了特定位的文档,可以使用 $bitsAllSet 运算符。

示例 1:查找 storeId 中设置了特定位的存储

db.stores.find({
  "store.storeId": { $bitsAllSet: 0b00000011 }
})

此查询将返回 storeId 字段同时设置了第一位和第二位的文档。

示例 2:查找 totalStaff.fullTime 中设置了特定位的存储

db.stores.find({
  "store.staff.totalStaff.fullTime": { $bitsAllSet: 0b00001111 }
})

此查询将返回 fullTime 中的 totalStaff 字段已设置前 4 位的文档。