合計数を取得するために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 }
-
カウントを取得するためのMongoDB$unwind
MongoDBの$unwindは、入力ドキュメントから配列フィールドを分解して、各要素のドキュメントを出力します。カウントを取得するには、aggregate()とともに$unwindを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo478.insertOne( ... { ... ... "Details" : { ... _id:1, ... "Information" : [ ... &
-
対応する重複する名前のフィールド値の数を取得するためのMongoDB集計?
例を見て、ドキュメントを使用してコレクションを作成しましょう- > db.demo558.insertOne( ... { ... _id : 100, ... CountryCode:101, ... details: [ ... { ... Name:"Chris", ... Subject:"MySQ