0
是否有可能擁有與第一個集合完全相同的第二個集合,但是應用了limit
和sort
運算符?複製一個Mongodb集合,但應用了「限制」
如果第一個集合有超過1000條記錄並添加了新記錄,則第二個集合將包含所有新記錄,但僅限於N個最新記錄(按時間戳字段排序)。
這樣做的原因是爲了克服我的數據庫驅動程序中沒有實現sort
和limit
的限制。
是否有可能擁有與第一個集合完全相同的第二個集合,但是應用了limit
和sort
運算符?複製一個Mongodb集合,但應用了「限制」
如果第一個集合有超過1000條記錄並添加了新記錄,則第二個集合將包含所有新記錄,但僅限於N個最新記錄(按時間戳字段排序)。
這樣做的原因是爲了克服我的數據庫驅動程序中沒有實現sort
和limit
的限制。
這聽起來像你想要的是一個capped collection。
上限集合自動限制爲固定數量的記錄。當它們已滿並且添加新文檔時,最早的文檔將被刪除。當您從集合中進行查詢而沒有顯式排序時,所有記錄都將保證按插入順序排列。最大的限制是,當封面收藏中的文檔增加尺寸時,無法更新文檔。
加蓋集合需要使用createCollection函數明確創建。這個shell命令將創建一個上限收集限量1000個文件:
db.createCollection("your_collection_name", { capped: true, size: 1000 });
當你想一個已經存在的集合轉換成封頂集合,你可以使用convertToCapped數據庫命令:
db.runCommand({"convertToCapped": "your_existing_collection_name", size: 1000});