0

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

4

2 回答 2

3

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
于 2014-10-09T07:20:42.660 回答
2

db.collectioname.stats()

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

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

{“好”:1}>

db.log_cap2.stats() {“ns”:“test.log_cap2”,“size”:0,“count”:0,“storageSize”:4096,“capped”:true,“max”:-1,“最大尺寸”:7680,

即使你我给大小为 7500,它也会以 256 的倍数分配

256*29 = 7424 256*30=7680

于 2017-09-26T10:22:43.360 回答