สำหรับสิ่งนี้ ให้ใช้ aggregate() ใน MongoDB ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo351.insertOne(... {...... "_id" :"101",... "ProductDetails" :[... {... "ProductName" :"Product- 1",... "ProductPrice" :500... },... {... "ProductName" :"Product-2",... "ProductPrice" :400... }... ]. .. }... );{ "acknowledged" :จริง "insertedId" :"101" }> db.demo351.insertOne(... {...... "_id" :"102",.. . "ProductDetails" :[... {... "ProductName" :"Product-3",... "ProductPrice" :200... },... {... "ProductName" :"Product- รายละเอียดผลิตภัณฑ์ 4",... "ProductPrice" :800... }... ]... }... );{ "acknowledged" :true, "insertedId" :"102" }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() &mnus;
> db.demo351.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :"101", "ProductDetails" :[ { "ProductName" :"Product-1", "ProductPrice" :500 }, { "ProductName" :"Product-2", "ProductPrice" :400 } ]}{ "_id" :"102", "ProductDetails" :[ { "ProductName" :"Product-3", "ProductPrice" :200 }, { "ProductName" :"Product-4", "ProductPrice" :800 } ] }
ต่อไปนี้เป็นแบบสอบถามเพื่อค้นหาองค์ประกอบอาร์เรย์เฉพาะในเอกสาร MongoDB พร้อมแบบสอบถามและตัวกรองที่มีช่วง -
> db.demo351.aggregate([... {... $match:{ _id:"102" }... },... {... $addFields:{... ProductDetails:{ ... $filter:{... input:"$ProductDetails",... cond:{... $and:[... { $gt:[ "$$this.ProductPrice", 600 ] }, ... { $lt:[ "$$this.ProductPrice", 900 ] }... ]... }... }... }... }... }... ])ก่อน>สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :"102", "ProductDetails" :[ { "ProductName" :"Product-4", "ProductPrice" :800 } ] }