2014-10-09 63 views
0

是否有可能在MongoDB中獲得最大大小的封頂集合,與創建時指定的大小相同?MongoDB獲取Capped集合的大小

+0

檢查[此]倍數分配(https://groups.google.com/論壇/#!話題/ MongoDB的用戶/ -3fmsKwb4GA) – deepakb 2014-10-09 06:57:28

回答

2

V2.6之前,您可以通過

db.system.namespaces.findOne({name : namespace}).options.size; 
// namesapce : <db>.<collection> 

對於V2.6 +(我測試的V2.6.4)得到它,你只能得到EXTENT_SIZE的整數倍。

returnSize = Math.ceil(specifiedSize/EXTENT_SIZE) * EXTENT_SIZE 
// for example, returnsize = Math.ceil(1/4096) * 4096 = 4096 
0

db.collectioname.stats()

會給你最大尺寸。它總是會在256

> db.createCollection("log_cap2", { capped: true, size: 7500 }) 

{ 「OK」:1}多個 >

db.log_cap2.stats() { 「NS」: 「test.log_cap2」, 「大小」:0, 「計數」:0, 「storageSize」:4096, 「封頂」:真實, 「最大」:-1, 「最大範圍」:7680,

即使你我給大小7500,將在256

256 * 29 = 7424 256 * 30 = 7680