Mongodb: クエリで or 演算子 ($or) を使用する方法


MongoDB で$or演算子を使用すると、複数の条件のいずれかに一致するドキュメントを検索できます。

この演算子は次の基本構文を使用します。

 db.myCollection.find({
  “ $or ”: [
    {" field1 ": " hello "},
    {" field2 ": { $gte : 10 }}
  ]
})

この特定の例では、 myCollectionという名前のコレクション内で、 field1 が“hello” であるか、 field2 の値が 10 以上であるすべてのドキュメントを検索します。

次の例は、次のドキュメントを使用して収集チームで実際にこの構文を使用する方法を示しています

 db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8})
db.teams.insertOne({team: " Mavs ", points: 35, rebounds: 12})
db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7})
db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5})
db.teams.insertOne({team: " Spurs ", points: 23, rebounds: 9})

例 1: 2 つのフィールドで OR 演算子を使用する

次のコードは、「team」フィールドが「Spurs」と等しいか、 「points」フィールドの値が 31 以上であるチームコレクション内のすべてのドキュメントを検索する方法を示しています。

 db.teams.find({
  “ $or ”: [
    {" team ": " Spurs "},
    {" points ": { $gte : 31 }}
  ]
})

このクエリは次のドキュメントを返します。

 { _id: ObjectId("62018750fd435937399d6b6f"),
  team: 'Mavs',
  points: 35,
  rebounds: 12 }
{ _id: ObjectId("62018750fd435937399d6b70"),
  team: 'Spurs',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("62018750fd435937399d6b71"),
  team: 'Spurs',
  points: 25,
  rebounds: 5 }
{ _id: ObjectId("62018750fd435937399d6b72"),
  team: 'Spurs',
  points: 23,
  rebounds: 9 }

出力内の各ドキュメントには、チーム フィールドに「Spurs」が含まれるか、ポイント フィールドに 31 以上の値が含まれることに注意してください。

例 2: 3 つ以上のフィールドで OR 演算子を使用する

次のコードは、「team」フィールドが「Mavs」と等しいか、 「points」フィールドの値が 25 以上であるか、「rebounds」フィールドの値が等しいチームコレクション内のすべてのドキュメントを検索する方法を示しています。 8 未満:

 db.teams.find({
  “ $or ”: [
    {" team ": " Mavs "},
    {" points ": { $gte : 25 }},
    {" rebounds ": { $lt : 8 }}
  ]
})

このクエリは次のドキュメントを返します。

 { _id: ObjectId("62018750fd435937399d6b6e"),
  team: 'Mavs',
  points: 30,
  rebounds: 8 }
{ _id: ObjectId("62018750fd435937399d6b6f"),
  team: 'Mavs',
  points: 35,
  rebounds: 12 }
{ _id: ObjectId("62018750fd435937399d6b70"),
  team: 'Spurs',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("62018750fd435937399d6b71"),
  team: 'Spurs',
  points: 25,
  rebounds: 5 }

これらの各ドキュメントは、次の 3 つの基準のうち 1 つ以上を満たしていることに注意してください。

  • 「チーム」フィールドは「 Mavs 」と同じです
  • 「ポイント」フィールドの値は25以上です
  • 「リバウンド」フィールドの値が8未満です

: $or関数の完全なドキュメントはここで見つけることができます。

追加リソース

次のチュートリアルでは、MongoDB で他の一般的な操作を実行する方法について説明します。

MongoDB: クエリで AND 演算子を使用する方法
MongoDB: フィールドに文字列が含まれているかどうかを確認する方法
MongoDB: 「NO IN」クエリの使用方法
MongoDB: 特定のフィールドで「not null」を検索する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です