我想刪除舊的聊天記錄,也就是除了最新的10個記錄以外的任何記錄。mongodb刪除舊聊天
這裏是我應得的最新:
collection.find({"chatroom" : chatroom}).limit(10).sort({ time: -1 })
如何刪除一切?
謝謝。
我想刪除舊的聊天記錄,也就是除了最新的10個記錄以外的任何記錄。mongodb刪除舊聊天
這裏是我應得的最新:
collection.find({"chatroom" : chatroom}).limit(10).sort({ time: -1 })
如何刪除一切?
謝謝。
您可以執行查詢以獲得第10個最舊的查詢,然後刪除比這更早的查詢。
var oldest = find({"chatroom" : chatroom}).limit(1).skip(10).sort({ time: -1 }).next();
remove({"chatroom" : chatroom, time : {$lt : oldest.time }})
如果通過適當的過濾器獲取相關文檔,您必須對結果集的每個項目進行迭代並逐個刪除它。
如何使用capped collection?在size
參數
保留足夠的空間,並設置max
至10
你可能想於swtich sort({ time: -1 })
與sort({ $natural: -1 })
有更好的表現,如果你切換到封頂集合(其中兩個訂單將是我猜想的一樣)。
我真的不想爲每個聊天室創建一個新的收藏夾 – Harry 2011-06-18 05:48:44
不應該 - >時間:{$ lt:oldest.time} – levhita 2013-01-26 03:36:17
levhita:是的,固定的。接得好。 – 2013-01-29 17:12:35