ใน MongoDB aggregate() ให้ใช้ $group และ aggregate collection ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo616.insertOne({"details":{"Name":"Chris","Age":21}});{ "acknowledged" :true, "insertedId" :ObjectId("5e99bfac65492f6c60d00283") }> db.demo616.insertOne({"details":{"Name":"Chris","Age":22}});{ "acknowledged" :true, "insertedId" :ObjectId("5e99bfb065492f6c60d00284")}> db.demo616.insertOne({"details":{"Name":"Bob","Age":23}});{ "acknowledged" :true, "insertedId" :ObjectId("5e99bfb865492f6c60d00285")}> db demo616.insertOne({"details":{"Name":"แซม"","อายุ":21}});{ "รับทราบ" :จริง "insertedId" :ObjectId("5e99bfbd65492f6c60d00286")}> db.demo616 insertOne({"details":{"Name":"Chris","Age":24}});{ "acknowledged" :true, "insertedId" :ObjectId("5e99bfc165492f6c60d00287")}
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo616.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :ObjectId("5e99bfac65492f6c60d00283"), "details" :{ "Name" :"Chris", "Age" :21 } }{ "_id" :ObjectId("5e99bfb065492f6c60d00284"), "details" :{ "ชื่อ" :"คริส", "อายุ" :22 } } }{ "_id" :ObjectId("5e99bfb865492f6c60d00285"), "รายละเอียด" :{ "ชื่อ" :"บ๊อบ", "อายุ" :23 } }{ "_id" :ObjectId("5e99bfbd65492f6c60d00286"), "details" :{ "Name" :"Sam", "Age" :21 } }{ "_id" :ObjectId("5e99bfc165492f6c60d00287"), "details" :{ " :"คริส", "อายุ" :24 } }
ต่อไปนี้เป็นแบบสอบถามเพื่อรวมคอลเลกชันและจัดกลุ่มตามจำนวนฟิลด์ -
> db.demo616.aggregate(... [... {... $group:{_id:"$details.Name",Total:{$sum:1}}}... ].. . );
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :"Sam", "Total" :1 }{ "_id" :"Bob", "Total" :1 }{ "_id" :"Chris", "Total" :3 }ก่อน>