$or (論理和)

最終更新:2026-10-09

$or (論理和)

$or は複数のクエリ条件を組み合わせ、いずれかを満たすドキュメントに一致します。`{ $or: [ { price: { $lt: 5 } }, { sale: true } ] }` のように使います。MongoDB は条件ごとにインデックスを使い、結果をマージできます。1 つのフィールドの複数値には $in が適しており、異なるフィールドのいずれか条件には $or を使います。

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

📝 構文

{ $or: [ { <condition1> }, { <condition2> }, ... ] }

⚙️ パラメータ

条件の配列クエリ述語の配列。いずれか1つが成立すれば十分です。

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

▶ 例

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

// $or: price が 5 未満 または セール中
db.products.find({
  $or: [
    { price: { $lt: 5 } },
    { sale: true }
  ]
})

出力:

// どちらかの条件に一致する商品を返す(両方一致しても 1 回だけカウント)

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$or と $in の違いは?
A$in は 1 つのフィールドの複数値を判定し、$or は異なるフィールドを組み合わせます。同一フィールドの複数値なら $in を使います。
Q$or は複数の条件が一致すると重複して返しますか?
Aいいえ。複数の条件に一致しても、ドキュメントは最大 1 回だけ返されます。
Q$or の中に $and をネストできますか?
Aはい。$or の各要素には $and や $nor などを書けます。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%