Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

ฉันจะรวมคอลเลกชันและจัดกลุ่มตามจำนวนฟิลด์ใน MongoDB ได้อย่างไร


ใน 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 }