2017-01-12 8 views
0

私は、次の形式でコレクションを持っている:mongodbにフィールド配列の要素を追加するには?

{ 
    "_id" : ObjectId("5877540712b0de70db15f3e2"), 
    "student_name" : "neel", 
    "roll_no" : 1, 
    "marks" : [ 
     { 
      "subject1" : 44, 
      "subject2" : 99, 
      "subject3" : 67, 
      "subject4" : 43 
     } 
    ] 
} 

私が学生の割合を見つけるために、パラメータroll_noでJavaScript関数を作成する必要があります。

注:アレイでは$addは機能しません。

私の機能である:

function findpercentage(no) { 
    db.marks1.aggregate({ 
     $match: { 
     "roll_no": no 
     } 
    }, { 
     $project: { 
     "student_name": 1, 
     "total": { 
      $divide: [$add: ["$marks.subject1", "$marks.subje‌​ct2", "$marks.subject‌​3", "$marks.subject4"‌​], 4] 
     } 
     }); 
    } 
+0

期待される出力は? –

答えて

0

$のアンワインドが働いていないが、最終的に私は、解決策を得ました。

function findpercentage1(no) { 
    db.marks1.aggregate([ 
    { $match:{roll_no:no}}, 
    { $project: { 
     "student_name": 1, 
     percentage: { 
      $divide:[ 
       {$add: [ { $arrayElemAt: [ "$marks", 0 ] }, 
      { $arrayElemAt: [ "$marks", 1 ] }, 
      { $arrayElemAt: [ "$marks", 2 ] }, 
      { $arrayElemAt: [ "$marks", 3 ] } 
       ] }, 
       4 
      ] 
     } 
     } 
    } 

    ]).forEach(function(pnt) 
{ 
print(pnt.percentage); 
}) 
} 
+0

あなたの現在の解決策が働いている場合は、あなたの質問に無効な書式のデータを投稿したことがあります@Neel –

+0

申し訳ありませんが、私は書式を変更したことを忘れていました。 – Neel

関連する問題