MongoDB获得Capped集合的大小

时间:2014-10-09 06:51:41

标签: mongodb capped-collections

是否可以在MongoDB中获得最大大小的上限集合,与创建时指定的大小相同?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

db.collectioname.stats()

会给你最大尺寸。它总是256的倍数

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

{“ok”:1} &GT;

  

db.log_cap2.stats()   {           “ns”:“test.log_cap2”,           “大小”:0,           “数”:0,           “storageSize”:4096,           “上限”:是的,           “max”: - 1,           “maxSize”:7680,

即使你把尺寸设为7500,它也会分配256的倍数

256 * 29 = 7424 256 * 30 = 7680