2017-05-09 5 views
0

私は、次のコレクション学生コレクションから特定の生徒のために紙で失敗した回数を取得するにはどうすればよいですか?

{ 
"name" : "arjun", 
"Roll NO" : 123, 
"timestamp" : { 
    "full" : "Wed Mar 23 10:38:12 UTC 2016" 
} 
"failed_in" : "Mathematics", 

}

{ 
"name" : "Ram", 
"Roll NO" : 103, 
"timestamp" : { 
    "full" : "Wed Mar 23 10:38:12 UTC 2016" 
} 
"failed_in" : "English", 

}

{ 
"name" : "Ram", 
"Roll NO" : 103, 
"timestamp" : { 
    "full" : "Wed Mar 23 10:38:12 UTC 2016" 
} 
"failed_in" : "Science", 

}

{ 
"name" : "arjun", 
"Roll NO" : 123, 
"timestamp" : { 
    "full" : "Thur April 18 10:38:12 UTC 2016" 
} 
"failed_in" : "English", 

}

を持っています
{ 
"name" : "arjun", 
"Roll NO" : 123, 
"timestamp" : { 
    "full" : "Wed Mar 23 10:38:12 UTC 2016" 
} 
"failed_in" : "Mathematics", 

}

私は日付順の並べ替え以下のような出力をしたいです。

{ 
'name':'arjun', 
failed_in:[{'mathematics':2},{'english':1}] 

}

{ 
'name':'ram', 
failed_in:[{'science':1},{'english':1}] 

} あなたはそれのためにクエリを与えてもらえます?私はこれをいくつかの恐ろしい方法で書きましたが、そのうちのどれもうまくいきません。

+0

[編集]リンクを使用して、あなたの質問を更新し、恐ろしいことにかかわらず、試行したコードを表示できますか? – chridam

答えて

0

これはどのように行うことができます。私はそれをテストし、完璧に動作します。

db.getCollection( 'テスト')凝集体([{$マッチ:{ "ロールNO":103}}、{$ 基:{ _id: "$ロールNO"、 failed_in:{$}}、 ]

関連する問題