$eq (等しい)
最終更新:2026-10-09
$eq (等しい)
$eq は式形式の等価比較で、2 つの引数を取りブール値を返します。$project や $match 内の $expr などの式コンテキストで動作し、クエリ演算子とは構文が異なります。クエリは { field: { $eq: value } } と書き、式は { $eq: [expr1, expr2] } と書きます。フィールド同士の比較や $cond の条件駆動に使われます。比較は BSON の型順序に従い、null は null と等しくなります。
| カテゴリ | 集合・条件・変換 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $eq: [ <expression1>, <expression2> ] }
⚙️ パラメータ
| 式1 | 比較する最初の式。 |
|---|---|
| 式2 | 比較する2番目の式。 |
戻り値:値が等しい場合は true、それ以外は false
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $eq: 送料無料かどうかを確認
db.orders.aggregate([
{ $project: {
freeShip: { $eq: ['$shipCost', 0] }
} }
])
出力:
{ '_id': 1, 'freeShip': true }
{ '_id': 2, 'freeShip': false }
📌 注意事項
- 式コンテキストは配列形式、クエリコンテキストはフィールドと値の形式
- null と null の比較は true を返す
- 比較は BSON の型順序に従う
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$eq の構文は式とクエリでどう違いますか?
Aクエリは { field: { $eq: value } }、式は { $eq: [expr1, expr2] } と書きます。
Qnull はどう比較されますか?
Anull と null は等しく、他のすべての型とは異なります。
Q配列を比較できますか?
Aはい — 要素ごとに比較され、順序が異なれば等しくありません。