MongoDB教學
MongoDB快速入門
MongoDB歷史
MongoDB特點
MongoDB數據庫的優點
MongoDB安裝配置(Windows)
MongoDB安裝配置(Ubuntu)
MongoDB安裝配置(RedHat/CentOS)
MongoDB數據建模
MongoDB創建數據庫
MongoDB刪除數據庫
MongoDB創建集合
MongoDB刪除集合
MongoDB數據類型
MongoDB插入文檔
MongoDB查詢文檔
MongoDB更新文檔
MongoDB刪除文檔
MongoDB投影(選擇字段)
MongoDB限制記錄數
MongoDB排序記錄
MongoDB索引
MongoDB聚合
MongoDB複製
MongoDB分片
MongoDB備份與恢復
MongoDB部署
Java連接MongoDB操作
Python連接MongoDB操作
PHP連接MongoDB操作
Ruby連接MongoDB操作
MongoDB固定循環集合
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
字段上。 - 在插入新文檔時,MongoDB不需要在磁盤上實際尋找一個容納新文檔的位置。它可以隨便地將新文檔插入集合的尾部。這樣就使得在固定集合中的插入操作非常快。
- 類似地,在讀取文檔的同時,MongoDB按照磁盤上存儲的順序返回文檔。這樣使讀取操作非常快。