Computer >> Máy Tính >  >> Lập trình >> MongoDB

Làm cách nào để tổng hợp bộ sưu tập và nhóm theo số trường trong MongoDB?

Trong MongoDB tổng hợp (), sử dụng nhóm $ và tập hợp tổng hợp. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo616.insertOne ({"details":{"Name":"Chris", "Age":21}}); {"Recog":true, "insertId":ObjectId ("5e99bfac65492f6c60d00283") }> db.demo616.insertOne ({"details":{"Name":"Chris", "Age":22}}); {"Recognition":true, "insertId":ObjectId ("5e99bfb065492f6c60d00284")}> db.demo616.insertOne ({"details":{"Name":"Bob", "Age":23}}); {"Recognition":true, "insertId":ObjectId ("5e99bfb865492f6c60d00285")}> db. demo616.insertOne ({"details":{"Name":"Sam", "Age":21}}); {"Recognition":true, "insertId":ObjectId ("5e99bfbd65492f6c60d00286")}> db.demo616. insertOne ({"details":{"Name":"Chris", "Age":24}}); {"inherit":true, "insertId":ObjectId ("5e99bfc165492f6c60d00287")} 

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> db.demo616.find (); 

Điều này sẽ tạo ra kết quả sau -

 {"_id":ObjectId ("5e99bfac65492f6c60d00283"), "details":{"Name":"Chris", "Age":21}} {"_id":ObjectId ("5e99bfb065492f6c60d00284"), "chi tiết" :{"Name":"Chris", "Age":22}} {"_id":ObjectId ("5e99bfb865492f6c60d00285"), "details":{"Name":"Bob", "Age":23}} { "_id":ObjectId ("5e99bfbd65492f6c60d00286"), "chi tiết":{"Tên":"Sam", "Tuổi":21}} {"_id":ObjectId ("5e99bfc165492f6c60d00287"), "chi tiết":{"Tên ":" Chris "," Tuổi ":24}} 

Sau đây là truy vấn để tổng hợp bộ sưu tập và nhóm theo số lượng trường -

> db.demo616.aggregate (... [... {... $ group:{_ id:"$ details.Name", Tổng cộng:{$ sum:1}}} ...] .. .); 

Điều này sẽ tạo ra kết quả sau -

 {"_id":"Sam", "Total":1} {"_id":"Bob", "Total":1} {"_id":"Chris", "Total":3}