如何在 MongoDB 中聚合求和以獲得總數?


要聚合 MongoDB 中的和以獲得總數,可以使用 $sum 運算子。為了理解以上概念,我們使用文件建立一個集合 -

> db.aggregateSumDemo.insertOne({"CustomerName":"Larry","Amount":140});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8baa0680f10143d8431e18")
}
> db.aggregateSumDemo.insertOne({"CustomerName":"Mike","Amount":160});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8baa1380f10143d8431e19")
}
> db.aggregateSumDemo.insertOne({"CustomerName":"Sam","Amount":300});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8baa1c80f10143d8431e1a")
}
> db.aggregateSumDemo.insertOne({"CustomerName":"David","Amount":500});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8baa2580f10143d8431e1b")
}

使用 find() 方法顯示集合中的所有文件。查詢如下 -

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

以下是輸出 -

{
   "_id" : ObjectId("5c8baa0680f10143d8431e18"),
   "CustomerName" : "Larry",
   "Amount" : 140
}
{
   "_id" : ObjectId("5c8baa1380f10143d8431e19"),
   "CustomerName" : "Mike",
   "Amount" : 160
}
{
   "_id" : ObjectId("5c8baa1c80f10143d8431e1a"),
   "CustomerName" : "Sam",
   "Amount" : 300
}
{
   "_id" : ObjectId("5c8baa2580f10143d8431e1b"),
   "CustomerName" : "David",
   "Amount" : 500
}

以下是獲取總數的查詢。

案例 1 - 查詢如下 -

> db.aggregateSumDemo.aggregate([ {
   ... $group: {
      ... _id: null,
      ... "TotalCount": {
         ... $sum:1
      ... }
   ... }
... } ] );

以下是輸出 -

{ "_id" : null, "TotalCount" : 4 }

以下是聚合 MongoDB 中的和以獲得總數的查詢。

案例 2 - 查詢如下 -

> db.aggregateSumDemo.aggregate([ {
   ... $group: {
      ... _id: null,
      ... "TotalAmount": {
         ... $sum: "$Amount"
      ... }
   ... }
... } ] );

以下是輸出 -

{ "_id" : null, "TotalAmount" : 1100 }

更新於: 2019-07-30

868 次瀏覽

開啟您的 職業生涯

完成課程並獲得認證

開始
廣告