MongoDB固定集合(Capped collections)是固定大小的迴圈集合,遵循插入順序以支援建立,讀取和刪除操作的高效能。 通過迴圈,當分配給集合的固定大小被耗盡時,它將開始刪除集合中最舊的文件,而不用提供任何明確的命令。
如果更新導致增加的文件大小,固定集合會限制文件的更新。 由於上限集合按照磁碟儲存的順序儲存文件,因此可確保文件大小不會增加磁碟上分配的大小。固定集合最適用於儲存紀錄檔資訊,快取資料或任何其他高容量資料。
要建立一個固定集合,可使用 createCollection
命令,但是capped
選項的值為true
,並指定以位元組為單位的最大集合大小。
>db.createCollection("cappedLogCollection",{capped:true,size:99999})
除了指定集合大小,還可以使用max
引數限制集合中的文件數量 -
>db.createCollection("cappedLogCollection",{capped:true,size:99999,max:1000})
如果要檢視集合是否固定,請使用以下isCapped
命令 -
>db.cappedLogCollection.isCapped()
如果想要將一個集合轉換為上限的集合,則可以使用以下程式碼進行操作:
>db.runCommand({"convertToCapped":"posts",size:99999})
此程式碼將現有的post
轉換為固定集合。
預設情況下,在固定集合上查詢將以插入順序顯示結果。 但是,如果要以相反的順序檢索文件,請使用sort
命令,如以下程式碼所示 -
> db.cappedLogCollection.find().sort({$natural:-1})
關於固定集合值得注意的幾個要點 -
_id
欄位上。