MongoDBで$or演算子を使ってドキュメントを取得する方法
MongoDBの$or演算子は、2つ以上の条件式の配列に対して論理OR演算を実行します。配列内のいずれか一つの条件でも一致するドキュメントがあれば、そのドキュメントが検索結果として返されます。
この記事では、実際にコレクションを作成し、$or演算子を使ってドキュメントを取得する手順を解説します。
サンプルコレクションの作成
まず、insertOne()メソッドを使って、ドキュメントを含むコレクションを作成しましょう。
> db.demo674.insertOne({Name:"Chris",Age:21});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea3f33604263e90dac943eb")
}
> db.demo674.insertOne({Name:"David",Age:23});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea3f33c04263e90dac943ec")
}
> db.demo674.insertOne({Name:"Bob",Age:21});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea3f34204263e90dac943ed")
}
> db.demo674.insertOne({Name:"John",Age:24});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea3f34804263e90dac943ee")
}このコレクションには、4つのドキュメント(Chris、David、Bob、John)が登録されました。
登録済みドキュメントの確認
find()メソッドを使って、コレクション内のすべてのドキュメントを表示してみましょう。
> db.demo674.find();
実行すると、以下のような出力が得られます。
{ "_id" : ObjectId("5ea3f33604263e90dac943eb"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5ea3f33c04263e90dac943ec"), "Name" : "David", "Age" : 23 }
{ "_id" : ObjectId("5ea3f34204263e90dac943ed"), "Name" : "Bob", "Age" : 21 }
{ "_id" : ObjectId("5ea3f34804263e90dac943ee"), "Name" : "John", "Age" : 24 }$or演算子を使ったドキュメントの取得
次に、$or演算子を使用してドキュメントを取得するクエリを見ていきましょう。ここでは、「NameがDavidである」または「Ageが21である」という条件を指定します。
> db.demo674.find({$or:[{Name:"David"},{Age:21}]});このクエリを実行すると、以下の出力が得られます。
{ "_id" : ObjectId("5ea3f33604263e90dac943eb"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5ea3f33c04263e90dac943ec"), "Name" : "David", "Age" : 23 }
{ "_id" : ObjectId("5ea3f34204263e90dac943ed"), "Name" : "Bob", "Age" : 21 }結果の解説
出力結果を確認すると、以下の3件のドキュメントが取得されています。
Chris(Age: 21) … 年齢が21であるため条件に一致
David(Age: 23) … 名前がDavidであるため条件に一致
Bob(Age: 21) … 年齢が21であるため条件に一致
一方、John(Age: 24)は名前がDavidでも年齢が21でもないため、結果には含まれません。このように、$or演算子は指定した複数の条件のうち、どれか一つでも満たすドキュメントをすべて取得します。AND条件(すべての条件を満たす必要がある)ではなく、OR条件(いずれかの条件を満たせばよい)で検索したい場合に非常に便利です。
-
MongoDBの$or演算子で複数条件に一致するドキュメントを取得する方法
はじめにMongoDBでは、$or演算子を使うことで、複数の条件のうちいずれか1つでも一致したドキュメントを取得できます。本記事では、サンプルコレクションを作成し、$or演算子を用いたOR条件検索の具体的な方法を解説します。サンプルコレクションの作成まず、insertOne()メソッドを使って、demo711というコレクションにドキュメントを挿入していきましょう。> db.demo711.insertOne({Name:"John","Marks":75,Age:21,status:"Active"}); { "
-
MongoDBで$in演算子を使って特定の複数ドキュメントを取得する方法
MongoDBで特定の複数のドキュメントを一度に取得したい場合、$in 演算子を使用します。$in は、指定した配列内のいずれかの値に一致するドキュメントだけを抽出できる便利な比較演算子です。この記事では、実際にコレクションを作成し、$in を使って特定の複数ドキュメントを取得する手順を順番に解説します。1. コレクションの作成とドキュメントの挿入まず、insertOne() メソッドを使ってサンプル用のコレクション「demo593」にドキュメントを挿入します。> db.demo593.insertOne({id:1,Name:Chris});{ acknowledged : tr