是否可以在 MongoDB 中获得上限集合的最大大小,与您在创建期间指定的大小相同?
问问题
1541 次
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 回答