$bitNot (ビット否定)

最終更新:2026-10-09

$bitNot (ビット否定)

$bitNot は単一の整数に対してビット単位の NOT(2 の補数)を行います。オペランドを 1 つだけ取る唯一のビット演算子です。MongoDB 6.3 以降で利用でき、結果は -x-1 と等しいため、NOT 5 は -6 になります。補完マスクの作成やビット演算での一般的な否定に使われます。引数が null または欠落している場合は null を返します。オペランドは int32 または int64 である必要があります。符号が反転することに注意してください。これは 2 の補数であり、単純な絶対値の反転ではありません。

カテゴリ数学
MongoDB バージョン6.3+
例の言語mongosh(シェル)

📝 構文

{ $bitNot: <integer-expression> }

⚙️ パラメータ

整数int32 または int64 の整数、あるいはそれらに解決される式。

戻り値:入力のビット単位 NOT(-x-1)。null または欠落している場合は null

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $bitNot: 権限ビットを反転して除外マスクを作成
db.users.aggregate([
  { $project: {
      denied: { $bitNot: '$allowedBits' }
  } }
])

出力:

{ '_id': 1, 'denied': -6 }
{ '_id': 2, 'denied': -1 }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q$bitNot(5) はいくつですか?
A-6 です。2 の補数の NOT は -x-1 に従います。
Qなぜ $bitNot は負の結果になるのですか?
A2 の補数の NOT は最上位ビットを反転させ、符号が変わるためです。
Q$bitNot はどこで役立ちますか?
A補完マスクの作成や、他のビット演算子との組み合わせなどです。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%