我正在使用nodejs mongodb本機驅動程序。我在寫一個聊天程序。我有一個名爲dialog的集合,它具有sessionId和dateCreated(timestamp)字段。我需要按他們的最後(最大)dateCreated時間戳排序不同的sessionIds列表。我還需要20條記錄的限制。我需要使用mongodb本機驅動程序來查找按時間戳字段排序的不同ID
這裏是我到目前爲止(顯然缺乏排序):
db.collection('dialog').distinct('sessionId',
function(err, users){
if(users.length > 10){
users = users.slice(0, 20);
}
console.log("users: " + users);
});
這裏有幾個文件。
{
"sessionId" : 455206183,
"msg" : "hi what's up?",
"dateCreated" : ISODate("2015-02-05T20:17:55.418Z"),
"_id" : ObjectId("54d3cff30e3ddb6922fbc2bb")
}, {
"sessionId" : 163220612,
"msg" : "yo",
"dateCreated" : ISODate("2015-02-05T20:18:00.434Z"),
"_id" : ObjectId("54d3cff80e3ddb6922fbc2bc")
}
爲此,您需要進行聚合調用(因爲這是在排序時獲得不同結果的唯一方法)。你可以發佈你正在使用的簡化模式嗎? – 2015-02-06 22:10:05
我發佈了一些文檔。我不確定你的意思是減少模式。我的理解是mongo是無模式的。 – 2015-02-06 22:21:42
它在技術上是,但其他庫在其上添加架構。如果你沒有你正在寫的數據的地圖,那麼你的時間就不好了。 – 2015-02-06 22:24:00