2017-02-15 62 views
0

我有對象player_of_day陣列inwhich再次有用戶ID即nominate_by我想找到具有最大計數的對象的陣列。 東西喜歡 - 從player_of_day其計,其目的在於最大MongoDB的查詢,以找到特定的對象中嵌套數組

"player_of_day" : [ 
     { 
      "nominate_by" : [ 
       ObjectId("58994bca4187b412aec50c94"), 
       ObjectId("58994a124187b412aec50c91"), 
       ObjectId("589955d54187b412aec50c99") 
      ], 
      "nominate_to" : ObjectId("58994b374187b412aec50c93"), 
      "count" : 3 
     }, 
     { 
      "nominate_by" : [ 
       ObjectId("58994c254187b412aec50c95"), 
       ObjectId("58994ad04187b412aec50c92") 
      ], 
      "nominate_to" : ObjectId("58994a124187b412aec50c91"), 
      "count" : 2 
     }, 
     { 
      "nominate_by" : [ 
       ObjectId("58994b374187b412aec50c93") 
      ], 
      "nominate_to" : ObjectId("58994c254187b412aec50c95"), 
      "count" : 1 
     } 
    ], 
+0

什麼結果你期待,你可以展示一些樣品 –

+0

我只是想從player_of_day記錄其數量是最大的 – Rupali

+0

對於例如: - 在上面例如,最大計數是3因此,我想要的結果: - 「nominate_by」:[ ObjectId(「58994bca4187b412aec50c94」), ObjectId(「58994 a124187b412aec50c91 「), 的ObjectId(」 589955d54187b412aec50c99 「) ], 」nominate_to「:的ObjectId(」 58994b374187b412aec50c93" ), 「計數」:3 – Rupali

回答

0

可以使用$unwind

db.match.aggregate([{"$unwind":"$player_of_day"},{"$sort":{'player_of_day.count':-1}},{"$limit":1}]); 
+0

@ Rama-tx尋求幫助....我可以只獲得**「nominate_to」**作爲其記錄數最大的輸出 – Rupali

+0

$項目將有助於此db.match.aggregate([{「$ unwind 「:」 $ player_of_day 「},{」 $排序 「:{ 'player_of_day.count': - 1}},{」 $限制 「:1},{」 $項目 「:{」 player_of_day.nominate_to「:1} }]); –

+0

我已經使用this-db.matches.aggregate([{「$ unwind」:「$ player_of_day」},{「$ sort」:{'player_of_day.count': - 1}},{「$ limit」:1 },{ 「$項目」:{ 「player_ of_day.nominate_to」:1}}]); – Rupali