1

私はMongoDbを初めて使っていて、その中でいくつかの基本的な計算をしようとしています。私は「_id」の値を追加したい同じコレクション内の特定のドキュメントの値に基づいて、すべてのドキュメントのフィールドを計算するにはどうすればよいですか?

{ "_id" : 1, "value" : 10} 
{ "_id" : 2, "value" : 20} 
{ "_id" : 3, "value" : 20} 
{ "_id" : 4, "value" : 30} 
{ "_id" : 5, "value" : 30} 
{ "_id" : 6, "value" : 30} 

以下のように、コレクション、CALCを持っている:1、そのコレクション内のドキュメントのすべての値フィールドへと計算結果と新しいフィールドを作成します。最終的な結果は以下の通りです。

{ "_id" : 1, "value" : 10, "sumup":20 } 
{ "_id" : 2, "value" : 20, "sumup":30 } 
{ "_id" : 3, "value" : 20, "sumup":30 } 
{ "_id" : 4, "value" : 30, "sumup":40 } 
{ "_id" : 5, "value" : 30, "sumup":40 } 
{ "_id" : 6, "value" : 30, "sumup":40 } 

答えて

0

あなたはモンゴシェルでこれを試みることができる:

db.collection.aggregate([ 
    { 
     "$project": { 
      "value": 1, 
      "sumup": { 
       "$add": [ "$value", (db.collection.findOne({"_id": 1})).value ] 
      } 
     } 
    } 
]) 
関連する問題