$eq (等しい)

最終更新:2026-10-09

$eq (等しい)

$eq は、フィールドの値が指定した値と等しいドキュメントを選択します。MongoDB で最もよく使われる完全一致の述語です。`{ age: { $eq: 21 } }` は `{ age: 21 }` と同じ意味ですが、$eq と書くことで等値の意図が明確になり、集計式の中でも比較演算子として使えます。$eq は型に敏感な点に注意してください。文字列「21」は数値の 21 とは一致しません。また、明示的な `{ $eq: /pattern/ }` は BSON の正規表現値のみに一致します。暗黙の `{ field: /pattern/ }` が正規表現マッチを行うのとは異なります。

カテゴリ比較
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ <field>: { $eq: <value> } }

⚙️ パラメータ

フィールドマッチ対象のドキュメントフィールド。ドット記法でネストしたフィールドにアクセスします(例: "address.city")。
値マッチする値。リテラルまたは式が可能で、BSON 型に依存します。

戻り値:一致するドキュメントのカーソル

▶ 例

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

// $eq: age が 21 と完全一致
db.users.find({ age: { $eq: 21 } })

// 同等の暗黙的な等値指定
db.users.find({ age: 21 })

// ネストしたフィールド + 型の確認
db.users.find({ "address.city": { $eq: "Beijing" } })

出力:

// age が数値型でちょうど 21 のドキュメントを返す
{ "_id": ObjectId("..."), "name": "Alice", "age": 21, "address": { "city": "Beijing" } }

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$eq と { age: 21 } を直接書く場合の違いは?
A機能的には同じです。$eq は等値の意図を明確にし、$and/$or の組み合わせの中で読みやすくなります。
Q$eq は null に一致しますか?
Aはい。$eq: null はフィールドが存在しないか null のドキュメントに一致します。リテラルの null だけに一致させたい場合は、$type: 10 (Null) と組み合わせます。
Q$eq は配列フィールドでどのように動作しますか?
Aいずれかの配列要素が値と等しければ一致します($elemMatch と同等)。配列全体を完全一致させたい場合は、配列リテラルを直接指定するか、$size と組み合わせます。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%