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

แบบสอบถาม MongoDB Group เพื่อรับการนับเครื่องหมายซ้ำในเอกสาร?


สำหรับการสืบค้นแบบกลุ่ม ให้ใช้ MongoDB $group และรับการนับด้วย $sum ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> db.demo676.insertOne({"Marks":87});{ "acknowledged" :true, "insertedId" :ObjectId("5ea41eed04263e90dac943f2")}> db.demo676.insertOne({"Marks":75 });{ "รับทราบ" :จริง "insertedId" :ObjectId("5ea41ef304263e90dac943f3")}> db.demo676.insertOne({"Marks":87});{ "acknowledged" :true, "insertedId" :ObjectId( "5ea41ef404263e90dac943f4")}> db.demo676.insertOne({"Marks":65});{ "acknowledged" :true, "insertedId" :ObjectId("5ea41ef704263e90dac943f5")}> db.demo676.insert"One ({{"5ea41ef704263e90dac943f5")}> db.demo676.insert"One ({"5ea41ef704263e90dac943f5")} :65});{ "รับทราบ" :จริง "insertedId" :ObjectId("5ea41ef804263e90dac943f6")}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

> db.demo676.find();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :ObjectId("5ea41eed04263e90dac943f2"), "Marks" :87 }{ "_id" :ObjectId("5ea41ef304263e90dac943f3"), "Marks" :75 }{ "_id" :ObjectId404294390 , "เครื่องหมาย" :87 }{ "_id" :ObjectId("5ea41ef704263e90dac943f5"), "เครื่องหมาย" :65 }{ "_id" :ObjectId("5ea41ef804263e90dac943f6"), "เครื่องหมาย" :65 }

ต่อไปนี้เป็นแบบสอบถามเพื่อรับการนับเครื่องหมายซ้ำ -

> db.demo676.aggregate( { $group:{... _id:{Marks:"$Marks" },... 'Count':{ $sum :1 }... }}) 

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :{ "Marks" :75 }, "Count" :1 }{ "_id" :{ "Marks" :65 }, "Counts" :2 }{ "_id" :{ "Marks" :87 } "นับ" :2 }