2014-01-14 72 views
0

是否有可能擁有與第一個集合完全相同的第二個集合,但是應用了limitsort運算符?複製一個Mongodb集合,但應用了「限制」

如果第一個集合有超過1000條記錄並添加了新記錄,則第二個集合將包含所有新記錄,但僅限於N個最新記錄(按時間戳字段排序)。

這樣做的原因是爲了克服我的數據庫驅動程序中沒有實現sortlimit的限制。

回答

1

這聽起來像你想要的是一個capped collection

上限集合自動限制爲固定數量的記錄。當它們已滿並且添加新文檔時,最早的文檔將被刪除。當您從集合中進行查詢而沒有顯式排序時,所有記錄都將保證按插入順序排列。最大的限制是,當封面收藏中的文檔增加尺寸時,無法更新文檔。

加蓋集合需要使用createCollection函數明確創建。這個shell命令將創建一個上限收集限量1000個文件:

db.createCollection("your_collection_name", { capped: true, size: 1000 }); 

當你想一個已經存在的集合轉換成封頂集合,你可以使用convertToCapped數據庫命令:

db.runCommand({"convertToCapped": "your_existing_collection_name", size: 1000});