2016-04-22 191 views
0

我試圖讓查詢工作從單個模式中獲取分組數據。模式看起來像在Mongoose中對查詢進行分組

Message: { 
sender: objectId, 
recipient: objectId, 
message: String 
posted: Date 
} 

每個文檔是一個純文本消息。對話將是對消息的簡單查詢。現在我想用最後一條消息得到最後的X個對話。如何應用分組?

謝謝。

回答

0

會說總量符合這裏的法案。運行下面的管道,以獲得最後的X談話,記$skip + $limit Sequence Optimization軸承:

var pipeline = [ 
    { 
     "$match": { 
      "$or": [ 
       { "sender": userId }, 
       { "recipient": userId } 
      ] 
     } 
    }, 
    { "$sort": { "posted": -1 } }, 
    { "$limit": PAGE_SIZE }, 
    { "$skip": (_page - 1) * PAGE_SIZE }  
] 
Model.aggregate(pipeline, _cb); 
+0

感謝,但是這是行不通的。我假設我需要一個$ group屬性來指定要聚合的內容 – damien