MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBで$in演算子を使って特定の複数ドキュメントを取得する方法

MongoDBで特定の複数のドキュメントを一度に取得したい場合、$in 演算子を使用します。$in は、指定した配列内のいずれかの値に一致するドキュメントだけを抽出できる便利な比較演算子です。

この記事では、実際にコレクションを作成し、$in を使って特定の複数ドキュメントを取得する手順を順番に解説します。

1. コレクションの作成とドキュメントの挿入

まず、insertOne() メソッドを使ってサンプル用のコレクション「demo593」にドキュメントを挿入します。

> db.demo593.insertOne({id:1,"Name":"Chris"});{
   "acknowledged" : true, "insertedId" : ObjectId("5e93177dfd2d90c177b5bcd9")
}
> db.demo593.insertOne({id:2,"Name":"John"});{
   "acknowledged" : true, "insertedId" : ObjectId("5e931785fd2d90c177b5bcda")
}
> db.demo593.insertOne({id:3,"Name":"Bob"});{
   "acknowledged" : true, "insertedId" : ObjectId("5e93178cfd2d90c177b5bcdb")
}
> db.demo593.insertOne({id:4,"Name":"Sam"});{
   "acknowledged" : true, "insertedId" : ObjectId("5e931792fd2d90c177b5bcdc")
}

2. find()メソッドですべてのドキュメントを表示

find() メソッドを使用すると、コレクション内のすべてのドキュメントを確認できます。

> db.demo593.find();

上記のクエリを実行すると、次のような出力が得られます。

{ "_id" : ObjectId("5e93177dfd2d90c177b5bcd9"), "id" : 1, "Name" : "Chris" }
{ "_id" : ObjectId("5e931785fd2d90c177b5bcda"), "id" : 2, "Name" : "John" }
{ "_id" : ObjectId("5e93178cfd2d90c177b5bcdb"), "id" : 3, "Name" : "Bob" }
{ "_id" : ObjectId("5e931792fd2d90c177b5bcdc"), "id" : 4, "Name" : "Sam" }

3. $in演算子で特定の複数ドキュメントを取得

ここからが本題です。特定の複数のドキュメントを取得するには、find() の検索条件に $in を指定します。以下の例では、「id」フィールドの値が 1 または 3 に一致するドキュメントのみを取得しています。

> db.demo593.find({id:{$in:[1,3]}});

実行結果は次のとおりです。

{ "_id" : ObjectId("5e93177dfd2d90c177b5bcd9"), "id" : 1, "Name" : "Chris" }
{ "_id" : ObjectId("5e93178cfd2d90c177b5bcdb"), "id" : 3, "Name" : "Bob" }

$in演算子のポイント

  • $in には配列形式で値を渡すため、[1, 3] のようにカンマ区切りで複数の条件を指定できます。
  • 文字列を指定する場合は ["Chris", "Bob"] のようにダブルクォートで囲みます。
  • 条件に一致するドキュメントが1件も存在しない場合、空の結果が返されます(エラーにはなりません)。

このように、$in 演算子を使えば OR 条件を簡潔に記述でき、特定の複数ドキュメントを効率的に取得できます。大量のデータから必要なレコードだけを絞り込みたい場合にぜひ活用してください。

  1. MongoDBで複合条件を指定してドキュメントを取得する方法

    MongoDBでは、$in 演算子を使用することで、複数の条件(複合条件)に一致するドキュメントを効率的に取得できます。この記事では、実際のコード例を通じて、コレクションの作成から複合条件による検索までの手順を詳しく解説します。ドキュメントを含むコレクションを作成するまず、insertOne() メソッドを使ってサンプルデータを持つコレクションを作成します。> db.demo714.insertOne({FirstName:Chris,LastName:Brown}); { acknowledged : true, insertedId : ObjectId(5ea9a2

  2. MongoDBで配列をクエリして特定の値を取得する方法

    配列から特定の値を取得するには、aggregate()メソッドと$projectステージを組み合わせて使用します。まずは、ドキュメントを含むコレクションを作成してみましょう。 > db.demo761.insertOne( ...    { ...        "details": [ ...            { ...                "