2012-11-24 146 views
-1

我想MongoDB中查詢這個SQL查詢的:蒙戈DB組順序

select x,y,message,foo from messege where x=1 and y=1 group by x,y order by _id DESC 

但:

MongoCollection ::組

誰能幫助我?

+0

http://stackoverflow.com/questions/ 3214406/how to to group with by mongodb?rq = 1 – int

+0

我對查詢中的「order by」部分感到困惑 - 由於您正在按單個值進行分組,因此您只會得到單個結果(x和y都1) - 你確定這是你真正想要的SQL嗎?這裏沒有聚合。 –

+0

@AsyaKamsky 是的,我在mysql上測試它 – Musher

回答

1

對於這個

select a,b,sum(c) csum from coll where active=1 group by a,b 

相應的是

db.coll.group(
      {key: { a:true, b:true }, 
      cond: { active:1 }, 
      reduce: function(obj,prev) { prev.csum += obj.c; }, 
      initial: { csum: 0 } 
      }); 

你不能從小組得到的結果進行排序,可以排序用於找到這樣的遞減-1,1 ASC:的.sort({ 「_編碼」: - 1})遞減

檢查此http://www.mongodb.org/display/DOCS/Aggregation#Aggregation-Group

+0

如果不是你的輸出的一部分,你怎麼能通過_id添加排序? –

+0

是的,你可以,我只是編輯我的答案我忘了()在 – cezar

+0

類別添加'.sort()'。組返回對象和數組,而不是光標。我想得到最適合在哪裏的記錄。不排序desc – Musher