$and (論理積)
最終更新:2026-10-09
$and (論理積)
$and は複数のクエリ条件を組み合わせ、すべてを満たすドキュメントを選択します。`{ $and: [ { price: { $gt: 10 } }, { inStock: true } ] }` のように使います。クエリ文書内の複数フィールドは暗黙的に AND になるため、$and は論理を明示するためのもので、同じフィールドに複数の条件を書くときに必須になります。
| カテゴリ | 論理 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $and: [ { <condition1> }, { <condition2> }, ... ] }
⚙️ パラメータ
| 条件の配列 | クエリ述語の配列。すべてが成立する必要があります。 |
|---|
戻り値:一致するドキュメントのカーソル
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $and: price が 10 超 かつ inStock が true
db.products.find({
$and: [
{ price: { $gt: 10 } },
{ inStock: true }
]
})
出力:
// 両方の条件を満たす商品を返す(暗黙の AND でも同じ結果)
📌 注意事項
- 複数フィールドの条件は暗黙的に AND になる。$and は必要なときだけ使う
- 同じフィールドに複数の条件を書くときは $and が必要
- 1 つでも条件を満たさなければそのドキュメントは除外される。順序は関係ない
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Q$and と複数フィールドを直接書く違いは?
A機能的には同じです。$and は同一フィールドへの複数条件や、論理構造を明確にしたいときに使います。
Q同じフィールドに $gt を 2 つ書けますか?
A直接書くとキーが重複して衝突します。$and を使います: { $and: [ { score: { $gt: 60 } }, { score: { $gt: 90 } } ] }。
Q$and の中に $or をネストできますか?
Aはい。$and の各要素には $or や $nor など任意の条件を書けます。