MongoDB-固定集合 capped collection 操作 介紹

來源:互聯網
上載者:User

標籤:

固定集合:capped collection 是效能出色的固定大小的集合,以LRU演算法淘汰記錄,自助維護集合中的對象的插入順序,建立時預先制定大小,空間使用完,心對象取代舊的對象,保持最新的資料。

 可以插入及更新,但更新不能超出 

collection 的大小,否則更新失敗。不允許刪除,但是可 以調用 drop() 刪除集合中的所有行,但是drop 後需要顯式地重建集合。在 32 位機上,一 個 capped collection 的最大值約為 482.5M,64 位上只受系統檔案大小的限制。

屬性以及用法:

屬性:1、對固定集合插入速度極快。

           2、按照插入順序的查詢輸出速度極快。

           3、能夠在插入最新時候淘汰最早的資料。

用法:1、儲存日誌資訊。

   2、儲存少量的文檔。

使用

 1、可以在建立 capped collection 時指定 collection 中能夠存放的最大文檔數。但這時也要指
定 size, 因為總是先檢查 size 後檢查 maxRowNumber。 可以使用 validate()查看一個 collection 已經使用了多少空間,從而決定size 設為多大。如:

db.createCollection("mycoll", {capped:true, size:100000, max:100});  //100000表示位元組

 

注意:指定文檔上限,必須指定大小,文檔限制是在容量沒滿時進行淘汰,要是滿了,就根據容量限制來進行淘汰。

> db.createCollection("mycol",{capped:true,size:100000,max:100}){ "ok" : 1 }> db.mycol.valdb.mycol.validate(  db.mycol.valueOf(> db.mycol.validate()          //用來查看固定集合的使用方式{    "ns" : "admin.mycol",    "capped" : true,    "max" : 100,    "firstExtent" : "0:8c000 ns:admin.mycol",    "lastExtent" : "0:8c000 ns:admin.mycol",    "extentCount" : 1,    "datasize" : 0,    "nrecords" : 0,    "lastExtentSize" : 102400,    "padding" : 1,    "firstExtentDetails" : {        "loc" : "0:8c000",        "xnext" : "null",        "xprev" : "null",        "nsdiag" : "admin.mycol",        "size" : 102400,        "firstRecord" : "null",        "lastRecord" : "null"    },    "deletedCount" : 2,    "deletedSize" : 102224,    "nIndexes" : 1,    "keysPerIndex" : {        "admin.mycol.$_id_" : 0    },    "valid" : true,    "errors" : [ ],    "warning" : "Some checks omitted for speed. use {full:true} option to do more thorough scan.",    "ok" : 1}> db.createCollection("mycol",{capped:true,size:100000,max:100,autoIndexId:false})//建立collection時還有一個參數”autoIndexID”,值可以為”true”和”false”,決定是否需要在”_id”上建立索引{ "ok" : 0, "errmsg" : "collection already exists" } > db.mycol.drop() true > db.createCollection("mycol",{capped:true,size:100000,max:100,autoIndexId:false}) { "ok" : 1 } >

2、轉換集合   把test普遍集合轉換為固定集合,大小為10000位元組.

db.runCommand( { convertTocapped:"test",size:10000 } );

 3、自然排序

固定集合文檔按照插入順序儲存的,預設情況下查詢就是按照插入順序返回的,也可以使用$natural調整返回順序.

db.mycappedcolt.find().sort( {"$natural":1} );

參數1表示預設順序,-1則相反.

4、判斷集合是否為固定集合

db.colt.isCapped();

5、查看集合狀態資訊

db.colt.stats();

 

MongoDB-固定集合 capped collection 操作 介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.