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

ใช้ Count Equivalent ใน MongoDB หาผู้ใช้ที่มีการเกิดขึ้นมากที่สุด

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

สร้างคอลเลกชันพร้อมเอกสาร (ชื่อซ้ำกัน):

> 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("5e47ed4c1627c0c63e7dbaa1") } 
> db.demo264.insertOne({"Name":"Chris"}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5e47ed4e1627c0c63e7dbaa2") } 
> db.demo264.insertOne({"Name":"Bob"}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5e47ed531627c0c63e7dbaa3") }

แสดงเอกสารทั้งหมด:

> db.demo264.find();

ผลลัพธ์ - Chris 3 ครั้ง, Bob 2 ครั้ง, David 1 ครั้ง:

คำสั่ง Aggregation: $group จัดกลุ่มตาม Name นับจำนวนด้วย $sum:1, $sort เรียงจำนวนมากไปน้อย, $limit 5:

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

ผลลัพธ์ - เรียงตามจำนวนมากไปน้อย: Chris (3), Bob (2), David (1):