MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

Aggregationフレームワークを使用してMongoDBの2つのフィールドを合計することは可能ですか?


はい、$project演算子を使用して可能です。まず、ドキュメントを使用してコレクションを作成しましょう

> db.sumTwoFieldsDemo.insertOne({"FirstValue":150,"SecondValue":350});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9b4bfe15e86fd1496b38cd")
}
> db.sumTwoFieldsDemo.insertOne({"FirstValue":450,"SecondValue":1550});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9b4c1215e86fd1496b38ce")
}
> db.sumTwoFieldsDemo.insertOne({"FirstValue":2560,"SecondValue":2440});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9b4c2715e86fd1496b38cf")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです

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

これにより、次の出力が生成されます

{
   "_id" : ObjectId("5c9b4bfe15e86fd1496b38cd"),
   "FirstValue" : 150,
   "SecondValue" : 350
}
{
   "_id" : ObjectId("5c9b4c1215e86fd1496b38ce"),
   "FirstValue" : 450,
   "SecondValue" : 1550
}
{
   "_id" : ObjectId("5c9b4c2715e86fd1496b38cf"),
   "FirstValue" : 2560,
   "SecondValue" : 2440
}

以下は、$project演算子を使用してMongoDBの2つのフィールドを合計するためのクエリです

> db.sumTwoFieldsDemo.aggregate(
...    { "$project" :
...       {
...          'First' : '$FirstValue',
...          'Second' : '$SecondValue',
...          'TotalValueOfBothFields' : { '$add' : [ '$FirstValue', '$SecondValue' ] },
...       }
...    }
... );

これにより、次の出力が生成されます

{ "_id" : ObjectId("5c9b4bfe15e86fd1496b38cd"), "First" : 150, "Second" : 350, "TotalValueOfBothFields" : 500 }
{ "_id" : ObjectId("5c9b4c1215e86fd1496b38ce"), "First" : 450, "Second" : 1550, "TotalValueOfBothFields" : 2000 }
{ "_id" : ObjectId("5c9b4c2715e86fd1496b38cf"), "First" : 2560, "Second" : 2440, "TotalValueOfBothFields" : 5000 }

  1. MongoDB集計で複数のフィールドでカウント

    複数のフィールドでカウントするには、MongoDBで$facetを使用します。 $ facetは、同じ入力ドキュメントのセットの単一ステージ内で複数の集約パイプラインを処理します。ドキュメントを使用してコレクションを作成しましょう- > db.demo721.insertOne( ...    { ... ...       "details1": { ...          "id":101 ... ...      

  2. C++を使用して2つの配列の重複する合計を見つけます

    この問題では、一意の値で構成される2つの配列arr1[]とarr2[]が与えられます。私たちのタスクは、2つの配列の重複する合計を見つけることです。 配列のすべての要素は異なります。そして、両方の配列に共通する要素の合計を返す必要があります 問題を理解するために例を見てみましょう 入力 arr1[] = {5, 4, 9, 2}, arr2[] = {6, 3, 9, 4} 出力 2 説明 The elements that are present in both arrays are 9 and 4. The sum is 9 + 9 + 4 + 4 = 26 ソリューション