您好,登錄后才能下訂單哦!
MongoDB中的普通集合是動態的,可以自動增長容納更多的數據;相對而言,有另一種集合稱之為固定集合。
(1)固定集合需要實現顯式創建,集合大小固定;
(2)一旦固定集合中空間用完,插入的新文檔將覆蓋最老的那個文檔的空間,類似循環隊列;
(3)固定集合不能被分片;
(4)固定集合不能修改,只能刪除重建
一、創建固定集合
使用CreateCollection創建固定集合myCollection,字節大小限制在10000,文檔數量限制在100:
> db.createCollection("myCollection",{capped:true,size:10000,max:100}) { "ok" : 1 } >
capped":是否固定集合;
"size":指定固定集合的字節大小;
"max":指定固定集合中的文檔限制;
不管是先到”size“的限制還是”max“的限制,新文檔都會覆蓋最舊的文檔;
二、將普通集合轉化為固定集合
使用convertToCapped將已有的集合轉化為固定集合:
> db.runCommand({convertToCapped:"foo","size":10000}) { "ok" : 1 } >
三、固定集合的自然排序
固定集合有特殊額排序,稱為自然排序,它返回結果集中文檔的順序就是文檔在磁盤上的順序。
默認文檔從舊到新的排序,也可以指定文檔從新到舊的排序:
> db.foo.find().sort({$natural:-1}) { "_id" : 3, "x" : 3 } { "_id" : 2, "x" : 2 } { "_id" : 1, "x" : 1 } { "_id" : 0 } >
四、沒有_id索引的集合
默認情況下:
(1)普通集合都有一個“_id”索引。在顯式創建集合的時候指定autoIndexId為false,將不會自動在_id字段上創建索引;
(2)固定集合沒有_id字段的索引,除非在創建時候顯式指定autoIndexId為true,或者事后用ensureIndex手動創建;
(3)_id字段上的索引必須是唯一索引;
五、循環游標
循環游標只能在固定集合中的一種特殊游標;
(1)當游標中的結果集被取光后,游標并不會關閉,而是等待有新文檔插入集合后放入游標;
(2)循環游標超時10分鐘后也會自動關閉,想使用循環游標也需要在游標釋放后自動執行查詢;
(3)不能在MongoDB shell中使用循環游標;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。