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

Làm cách nào để tính tổng giá trị của một khóa trên tất cả các tài liệu trong bộ sưu tập MongoDB?

Để nhận tổng giá trị của một khóa trên tất cả các tài liệu trong bộ sưu tập MongoDB, bạn có thể sử dụng tổng hợp ().

Để hiểu khái niệm trên, chúng ta hãy tạo một bộ sưu tập với tài liệu. Truy vấn để tạo một bộ sưu tập với một tài liệu như sau -

> db.sumOfValueDemo.insertOne({"Name":"Larry","Amount":14.50});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ee7272f684a30fbdfd592")
}
> db.sumOfValueDemo.insertOne({"Name":"Mike","Amount":15.68});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ee7342f684a30fbdfd593")
}
> db.sumOfValueDemo.insertOne({"Name":"Carol","Amount":50.32});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ee7412f684a30fbdfd594")
}
> db.sumOfValueDemo.insertOne({"Name":"David","Amount":120.90});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ee7532f684a30fbdfd595")
}

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 (). Truy vấn như sau -

> db.sumOfValueDemo.find().pretty();

Sau đây là kết quả -

{
   "_id" : ObjectId("5c8ee7272f684a30fbdfd592"),
   "Name" : "Larry",
   "Amount" : 14.5
}
{
   "_id" : ObjectId("5c8ee7342f684a30fbdfd593"),
   "Name" : "Mike",
   "Amount" : 15.68
}
{
   "_id" : ObjectId("5c8ee7412f684a30fbdfd594"),
   "Name" : "Carol",
   "Amount" : 50.32
}
{
   "_id" : ObjectId("5c8ee7532f684a30fbdfd595"),
   "Name" : "David",
   "Amount" : 120.9
}

Đây là truy vấn để tính tổng giá trị của một khóa trên tất cả các tài liệu trong bộ sưu tập MongoDB:

> db.sumOfValueDemo.aggregate({
   ... $group: {
      ... _id: '',
      ... "Amount": { $sum: '$Amount' }
   ... }
   ... }, {
      ... $project: {
         ... _id: 0,
         ... "TotalAmount": '$Amount'
      ... }
... });

Sau đây là kết quả:

{ "TotalAmount" : 201.4 }