MongoDB 常用命令
统计表大小
执行 use 命令,进入到要查询的库中
use 库名
- 库名请修改为实际要进入的库名称,例如:
use mdworkflow
(() => {
const getReadableSize = b => b === 0 ? '0.0 B' :
((u=['B','kB','MB','GB','TB','PB'])[i=Math.floor(Math.log(b)/Math.log(1024))],
`${(b/Math.pow(1024,i)).toFixed(1)} ${u[i]}`);
const stats = db.getCollectionNames().map(n => {
try {
const s = db.getCollection(n).stats();
return {
ns: s.ns || `${db.getName()}.${n}`,
count: s.count || 0,
size: (s.storageSize || 0) + (s.totalIndexSize || 0)
};
} catch (e) { return null; }
}).filter(s => s && s.size > 0).sort((a,b) => b.size - a.size);
if (!stats.length) return print("No valid collection data");
const [maxNs, maxCnt] = stats.reduce(([nl, cl], s) => [
Math.max(nl, s.ns.length),
Math.max(cl, s.count.toString().length)
], ['Collection'.length, 'Documents'.length]);
const h = `Collection${' '.repeat(maxNs-10)} | Documents${' '.repeat(maxCnt-9)} | Total Size`;
print(h + '\n' + '-'.repeat(h.length));
stats.forEach(s => print(
`${s.ns.padEnd(maxNs)} | ${s.count.toString().padEnd(maxCnt)} | ${getReadableSize(s.size)}`
));
})();
- 执行完以上命令,会统计并输出当前库中各表的大小