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" ] }