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

MongoDB SELECT COUNT GROUP BY - นับจำนวนและจัดกลุ่มข้อมูล

ใช้ Aggregate Framework เพื่อทำงานแบบ SELECT COUNT GROUP BY ใน MongoDB

ตัวอย่างการใช้งาน

สร้างคอลเลกชัน countGroupByDemo:

> db.countGroupByDemo.insertOne({"StudentId":10,"StudentName":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c7700871e9c5dd6f1f78296") }
> db.countGroupByDemo.insertOne({"StudentId":10,"StudentName":"Carol"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c77008f1e9c5dd6f1f78297") }
> db.countGroupByDemo.insertOne({"StudentId":20,"StudentName":"Sam"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c7700971e9c5dd6f1f78298") }
> db.countGroupByDemo.insertOne({"StudentId":30,"StudentName":"Mike"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c7700a21e9c5dd6f1f78299") }
> db.countGroupByDemo.insertOne({"StudentId":30,"StudentName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c7700aa1e9c5dd6f1f7829a") }
> db.countGroupByDemo.insertOne({"StudentId":10,"StudentName":"Maxwell"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c7700b41e9c5dd6f1f7829b") }
> db.countGroupByDemo.insertOne({"StudentId":20,"StudentName":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c7700bd1e9c5dd6f1f7829c") }

แสดงข้อมูลทั้งหมด:

> db.countGroupByDemo.find().pretty();
{"_id" : ObjectId("5c7700871e9c5dd6f1f78296"), "StudentId" : 10, "StudentName" : "John" }
{"_id" : ObjectId("5c77008f1e9c5dd6f1f78297"), "StudentId" : 10, "StudentName" : "Carol" }
{"_id" : ObjectId("5c7700971e9c5dd6f1f78298"), "StudentId" : 20, "StudentName" : "Sam" }
{"_id" : ObjectId("5c7700a21e9c5dd6f1f78299"), "StudentId" : 30, "StudentName" : "Mike" }
{"_id" : ObjectId("5c7700aa1e9c5dd6f1f7829a"), "StudentId" : 30, "StudentName" : "David" }
{"_id" : ObjectId("5c7700b41e9c5dd6f1f7829b"), "StudentId" : 10, "StudentName" : "Maxwell" }
{"_id" : ObjectId("5c7700bd1e9c5dd6f1f7829c"), "StudentId" : 20, "StudentName" : "Bob" }

คำสั่ง Aggregate เพื่อนับจำนวนและจัดกลุ่มตาม StudentId:

> db.countGroupByDemo.aggregate([
... {$group:{_id:"$StudentId",counter:{$sum:1}}}]) ;
{"_id" : 30, "counter" : 2 }
{"_id" : 20, "counter" : 2 }
{"_id" : 10, "counter" : 3 }

ผลลัพธ์แสดงจำนวนเอกสารในแต่ละกลุ่ม StudentId