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

MongoDB Aggregation รวม Field และนับจำนวน

Aggregation รวม Field และนับจำนวนด้วย $group

เพื่อรวม Field และนับจำนวน ให้ใช้ $group ร่วมกับ $sum และ $sort

สร้าง Collection พร้อมข้อมูล

> db.demo647.insertOne({"Subject":"MySQL"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9c86316c954c74be91e6ee") }
> db.demo647.insertOne({"Subject":"MongoDB"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9c86356c954c74be91e6ef") }
> db.demo647.insertOne({"Subject":"MySQL"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9c86376c954c74be91e6f0") }
> db.demo647.insertOne({"Subject":"SQL Server"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9c86406c954c74be91e6f1") }
> db.demo647.insertOne({"Subject":"MongoDB"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9c86436c954c74be91e6f2") }
> db.demo647.insertOne({"Subject":"PL/SQL"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9c864b6c954c74be91e6f3") }
> db.demo647.insertOne({"Subject":"MongoDB"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9c86c16c954c74be91e6f4") }

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

> db.demo647.find();

ผลลัพธ์:

{ "_id" : ObjectId("5e9c86316c954c74be91e6ee"), "Subject" : "MySQL" }
{ "_id" : ObjectId("5e9c86356c954c74be91e6ef"), "Subject" : "MongoDB" }
{ "_id" : ObjectId("5e9c86376c954c74be91e6f0"), "Subject" : "MySQL" }
{ "_id" : ObjectId("5e9c86406c954c74be91e6f1"), "Subject" : "SQL Server" }
{ "_id" : ObjectId("5e9c86436c954c74be91e6f2"), "Subject" : "MongoDB" }
{ "_id" : ObjectId("5e9c864b6c954c74be91e6f3"), "Subject" : "PL/SQL" }
{ "_id" : ObjectId("5e9c86c16c954c74be91e6f4"), "Subject" : "MongoDB" }

คิวรีรวม Field และนับจำนวน เรียงลำดับมากไปน้อย

> db.demo647.aggregate([
... { "$group": { "_id": "$Subject", "COUNT": { "$sum": 1 } } },
... { "$sort": { "COUNT": -1 } },
... { "$limit": 2 }
... ] );

ผลลัพธ์ (Top 2):

{ "_id" : "MongoDB", "COUNT" : 3 }
{ "_id" : "MySQL", "COUNT" : 2 }