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

ใช้การนับที่เทียบเท่าใน MongoDB เพื่อค้นหาผู้ใช้อันดับต้น ๆ ที่มีการเกิดขึ้นสูงสุด


เพื่อให้ได้จำนวนและผู้ใช้สูงสุด ใช้ $group พร้อมกับ aggregate() ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> db.demo264.insertOne({"Name":"Chris"});{ "acknowledged" :true, "insertedId" :ObjectId("5e47ed441627c0c63e7dba9e")}> db.demo264.insertOne({"Name") :"David"});{ "acknowledged" :true, "insertedId" :ObjectId("5e47ed471627c0c63e7dba9f")}> db.demo264.insertOne({"Name":"Chris"});{ "acknowledged" :true, "insertedId" :ObjectId("5e47ed491627c0c63e7dbaa0")}> db.demo264.insertOne({"Name":"Bob"});{ "acknowledged" :true, "insertedId" :ObjectId("5e47ed4c1627cad0c163"}>7dba demo264.insertOne({"Name":"Chris"});{ "acknowledged" :true, "insertedId" :ObjectId("5e47ed4e1627c0c63e7dbaa2")}> db.demo264.insertOne({"Name":"Bob"});{ "รับทราบ" :จริง "insertedId" :ObjectId("5e47ed531627c0c63e7dbaa3")}

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

> db.demo264.find();

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

{ "_id" :ObjectId("5e47ed441627c0c63e7dba9e"), "Name" :"Chris" }{ "_id" :ObjectId("5e47ed471627c0c63e7dba9f"), "Name" :"David" }{ "_id" :ObjectId( "5e47ed491627c0c63e7dbaa0"), "ชื่อ" :"คริส" }{ "_id" :ObjectId("5e47ed4c1627c0c63e7dbaa1"), "ชื่อ" :"บ๊อบ" }{ "_id" :ObjectId"") Chris" }{ "_id" :ObjectId("5e47ed531627c0c63e7dbaa3"), "Name" :"Bob" }

ต่อไปนี้เป็นแบบสอบถามเพื่อใช้การนับเทียบเท่าใน MongoDB เพื่อค้นหาผู้ใช้อันดับต้น ๆ ที่มีการเกิดขึ้นสูงสุด -

> db.demo264.aggregate(... {$group :{_id :"$Name", "count" :{$sum :1}}},... {$sort :{"count" :-1}},... {$limit :5}...)

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

{ "_id" :"Chris", "count" :3 }{ "_id" :"Bob", "count" :2 }{ "_id" :"David", "count" :1 }