通常我们登录到mongodb以后使用show命令就能看到所有库的用量大小,但是使用db.getCollectionNames()只能获取到集合列表,我们想知道集合所占用空间大小可以使用如下命令
tables = db.getCollectionNames(); tables.forEach( function (item) { stats=db.runCommand({collStats:item}); sizeGB = stats.storageSize/1024/1024; prettyGB = Math.round(sizeGB)+ 'MB'; print(item, prettyGB) })
如果需要清理冗余空间可以使用如下命令,我还未测试过,先记录下
// primary
db.runCommand({compact:'flow_down_stream_info',force:true})
// secondary
db.runCommand({compact:'flow_down_stream_info'})