$ne (等しくない)
最終更新:2026-10-09
$ne (等しくない)
$ne は、フィールドの値が指定した値と等しくないドキュメントを選択します。$eq の否定です。`{ age: { $ne: 18 } }` は age が 18 でないすべてのドキュメントに一致します。$eq と同様に型に敏感で、直感に反しますが、フィールドが存在しないドキュメントには一致しません。
| カテゴリ | 比較 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ <field>: { $ne: <value> } }
⚙️ パラメータ
| フィールド | マッチ対象のドキュメントフィールド。 |
|---|---|
| 値 | 除外する値。 |
戻り値:一致するドキュメントのカーソル
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $ne: age が 18 のドキュメントを除外
db.users.find({ age: { $ne: 18 } })
出力:
// age が 18 でないドキュメントを返す(フィールドが存在しないドキュメントは除外)
📌 注意事項
- フィールドが存在しないドキュメントには一致しない。$exists: true と組み合わせれば含められる
- 配列に対しては、いずれかの要素が値と等しくなければ一致する
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Q$ne はフィールドが存在しないドキュメントに一致しますか?
Aいいえ。$ne はフィールドが存在し、その値が異なるドキュメントのみに一致します。存在しないフィールドを含めたい場合は $exists: true を追加します。
Q$ne と $not: { $eq: ... } の違いは?
Aスカラーフィールドでは結果は同じです。配列では、$ne はいずれかの要素が異なれば一致しますが、$not: { $eq } はすべての要素が値と等しくないことを要求するため、より厳格です。
Q$ne は null に一致しますか?
Aはい。$ne: null は値が null のドキュメントを除外します。ただしフィールドが存在しないドキュメントは「等しくない」とみなされて一致してしまうため、必要に応じて $exists と組み合わせます。