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

MongoDBコレクションから配列を取得するにはどうすればよいですか?


集約フレームワークを使用できます。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.getArrayDemo.insertOne(
   {
      "CustomerId":101,
      "CustomerDetails":[
         {
            "CustomerName":"Larry",
            "CustomerFriendDetails":[
               {
                  "CustomerFriendName":"Sam"
               },
               {
                  "CustomerFriendName":"Robert"
               }
            ]
         },
         {
            "CustomerName":"Chris",
            "CustomerFriendDetails":[
               {
                  "CustomerFriendName":"David"
               },
               {
                  "CustomerFriendName":"Carol"
               }
            ]
         }
      ]
   }
);
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cda4949b50a6c6dd317adb7")
}

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

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

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

{
   "_id" : ObjectId("5cda4949b50a6c6dd317adb7"),
   "CustomerId" : 101,
   "CustomerDetails" : [
      {
         "CustomerName" : "Larry",
         "CustomerFriendDetails" : [
            {
               "CustomerFriendName" : "Sam"
            },
            {
               "CustomerFriendName" : "Robert"
            }
         ]
      },
      {
         "CustomerName" : "Chris",
         "CustomerFriendDetails" : [
            {
               "CustomerFriendName" : "David"
            },
            {
               "CustomerFriendName" : "Carol"
            }
         ]
      }
   ]
}

以下は、MongoDBコレクションから配列を取得するためのクエリです-

> db.getArrayDemo.aggregate([
   { "$unwind": "$CustomerDetails" },
   { "$unwind": "$CustomerDetails.CustomerFriendDetails"},
   {
      "$group": {
         "_id": null,
         "CustomerFriendDetails": { "$push": "$CustomerDetails.CustomerFriendDetails.CustomerFriendName" }
      }
   }
]);

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

{ "_id" : null, "CustomerFriendDetails" : [ "Sam", "Robert", "David", "Carol" ] }

  1. コレクションから配列全体を削除するMongoDBクエリ?

    コレクションから配列全体を削除するには、MongoDBで$unsetを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo609.insertOne({"ListOfSubject":["MySQL","MongoDB"]});{    "acknowledged" : true, "insertedId" : ObjectId("5e974695f57d0dc0b182d62c") } > db.demo609

  2. MongoDBコレクションから重複を削除するにはどうすればよいですか?

    このために、「 unique:true」を設定します 」つまり、一意の制約を使用し、次の構文のように重複を挿入しないようにします- db.yourCollectionName.ensureIndex({yourFieldName: 1}, {unique: true, dropDups: true}) 上記の構文を理解するために、ドキュメントを使用してコレクションを作成しましょう。ここでは、重複挿入は許可されません- > db.demo604.ensureIndex({FirstName: 1}, {unique: true, dropDups: true});{   &nb