亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

MongoDB 固定集合

固定集合是固定大小的循環(huán)集合,遵循插入順序,以支持高性能的創(chuàng)建,讀取和刪除操作。循環(huán)表示這意味著當(dāng)分配給集合的固定大小用盡時,它將開始刪除集合中最舊的文檔,而無需提供任何顯式命令。

如果更新導(dǎo)致文檔大小增加,則限制對文檔的更新。由于固定集合按磁盤存儲的順序存儲文檔,因此它可以確保文檔大小不會增加磁盤上分配的大小。固定集合最適合存儲日志信息、緩存數(shù)據(jù)或任何其他大容量數(shù)據(jù)。

創(chuàng)建固定集合

要創(chuàng)建一個有上限的集合,我們使用普通的createCollection命令,但將capped選項設(shè)置為,true并指定集合的最大大小(以字節(jié)為單位)。

>db.createCollection("cappedLogCollection",{capped:true,size:10000})

除了集合大小,我們還可以使用max參數(shù)-限制集合中的文檔數(shù)-

>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})

如果要檢查集合是否受限制,請使用以下isCapped命令-

>db.cappedLogCollection.isCapped()

如果有計劃將其轉(zhuǎn)換為上限的現(xiàn)有集合,則可以使用以下代碼進(jìn)行處理-

>db.runCommand({"convertToCapped":"posts",size:10000})

此代碼會將我們現(xiàn)有的收藏轉(zhuǎn)換posts為有上限的集合。

查詢上限集合

默認(rèn)情況下,在上限集合上的查找查詢將按插入順序顯示結(jié)果。但是,如果您希望以相反的順序檢索文檔,請使用sort以下代碼中所示的命令-

>db.cappedLogCollection.find().sort({$natural:-1})

關(guān)于封頂?shù)氖詹丶?,還有一些其他重要要點-

  • 我們無法從上限集合中刪除文檔。

  • 在上限集合中沒有默認(rèn)索引,即使在_id字段上也沒有。

  • 插入新文檔時,MongoDB不必實際在磁盤上尋找容納新文檔的位置。它可以將新文檔盲目插入到集合的末尾。這使得加蓋集合中的插入操作非???。

  • 同樣,在讀取文檔時,MongoDB會以與磁盤上相同的順序返回文檔。這使得讀取操作非常快。