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

MongoDBの配列内の複数のアイテムを取得するためのクエリ?


配列内の複数のアイテムを取得するには、集約フレームワークを使用します。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.retrieveMultipleDemo.insertOne(
...   {
...      "UserDetails":
...      [
...         { "_id": "101", "UserName":"John", "UserAge": 23 },
...         { "_id": "102", "UserName":"Carol", "UserAge": 21 },
...         { "_id": "103", "UserName":"David", "UserAge": 23},
...         { "_id": "104", "UserName":"Sam", "UserAge": 25}
...      ]
...   }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd40c85edc6604c74817cf0")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

> db.retrieveMultipleDemo.find().pretty();

これにより、次の出力が生成されます-

{
   "_id" : ObjectId("5cd40c85edc6604c74817cf0"),
   "UserDetails" : [
      {
         "_id" : "101",
         "UserName" : "John",
         "UserAge" : 23
      },
      {
         "_id" : "102",
         "UserName" : "Carol",
         "UserAge" : 21
      },
      {
         "_id" : "103",
         "UserName" : "David",
         "UserAge" : 23
      },
      {
         "_id" : "104",
         "UserName" : "Sam",
         "UserAge" : 25
      }
   ]
}

以下は、配列内の複数のアイテムを取得するためのクエリです-

> db.retrieveMultipleDemo.aggregate([
...   {$unwind:"$UserDetails"},
...   {$match:{"UserDetails._id":{$in:myIds},"UserDetails.UserAge":23}},
...   {$group:{"_id":"_id","UserDetails":{$push:"$UserDetails"}}},
...   {$project:{"_id":0,"UserDetails":1}}
... ]);

これにより、次の出力が生成されます-

{ "UserDetails" : [ { "_id" : "101", "UserName" : "John", "UserAge" : 23 }, { "_id" : "103", "UserName" : "David", "UserAge" : 23 } ] }

  1. _idでグループ化するMongoDBクエリ

    MongoDBで_idでグループ化するには、$groupを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo529.insertOne({"Score":10});{    "acknowledged" : true,    "insertedId" : ObjectId("5e8b1d5bef4dcbee04fbbbe4") } > db.demo529.insertOne({"Score":20});{ &

  2. オブジェクトの配列内で複数の一致を見つけるためのMongoDBクエリ?

    これには、$andを$regexと一緒に使用します。 $ andは、1つ以上の式の配列に対して論理積演算を実行し、配列内のすべての式を満たすドキュメントを選択します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo525.insertOne({"details":[{Name:"Chris","CountryName":"US"}]});{    "acknowledged" : true,    "insert