Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

$bitAnd(集計)

項目一覧

  • 定義
  • 構文
  • 動作
  • 詳細

バージョン 6.3 で追加

$bitAnd

intまたはlong値の配列に対するビット単位のand演算の結果を返します。

$bitAnd演算子の構文は次のとおりです。

{ $bitAnd: [ <expression1>, <expression2>, ... ] }

オペランドに整数と long 値の両方が含まれている場合、MongoDB は計算された整数結果を符号拡張し、long 値を返します。 そうではなく、オペランドに整数のみまたは long のみが含まれている場合、MongoDB は対応する値の型を持つ結果を返します。

注意

mongosh内のすべての数値は、整数ではなく double です。 mongoshで整数を指定するには、 NumberInt()またはNumberLong()コンストラクターを使用します。 詳しくは、「 Int 32またはLong 」を参照してください。

MongoDB ドライバーが数値を処理する方法については、ドライバーのドキュメント を参照してください。

配列内のいずれかの引数がstring、double、decimal など、異なるデータ型である場合、MongoDB はエラーを返します。

引数が空の配列の場合、操作はNumberInt(-1)を返します。

オペランドのいずれかがnullと等しい場合、操作はnullを返します。

このページの例では、次のドキュメントを含むswitchesコレクションを使用しています。

db.switches.insertMany( [
{ _id: 0, a: NumberInt(0), b: NumberInt(127) },
{ _id: 1, a: NumberInt(2), b: NumberInt(3) },
{ _id: 2, a: NumberInt(3), b: NumberInt(5) }
] )

次の集計では、$bitAnd $projectステージで 演算子を使用します。

db.switches.aggregate( [
{
$project: {
result: {
$bitAnd: [ "$a", "$b" ]
}
}
}
])

この操作は次の結果を返します。

[
{ _id: 0, result: 0 }
{ _id: 1, result: 2 }
{ _id: 2, result: 1 }
]

次の集計では、 ステージで$bitAnd $project演算子が使用されます。

db.switches.aggregate( [
{
$project: {
result: {
$bitAnd: [ "$a", NumberLong("63") ]
}
}
}
])

この操作は次の結果を返します。

[
{ _id: 0, result: NumberLong("0") }
{ _id: 1, result: NumberLong("2") }
{ _id: 2, result: NumberLong("3") }
]
  • 集計演算子

  • $bit

戻る

$binarySize