如何在Mongo Shell中快速将分片索引大小查询结果按分片名排序
解决方法
直接提取分片名称数组排序后再遍历输出即可,完整执行语句如下:
var test = db.collection.stats().shards; Object.keys(test).sort().forEach(key => printjson(`${key} -> ${test[key].totalIndexSize}`))
逻辑说明
Object.keys(test)会将分片统计结果对象的所有分片名提取为字符串数组- 无参调用
sort()方法默认按字符串Unicode码点升序排列,完全匹配分片名按编号从小到大排序的需求 - 遍历排序后的分片名数组输出对应索引大小即可得到你要的结果
如果使用的Mongo Shell版本较低不支持ES6语法,可使用兼容写法:
var test = db.collection.stats().shards; Object.keys(test).sort().forEach(function(key) { printjson(key + " -> " + test[key].totalIndexSize) })
内容的提问来源于stack exchange,提问作者R2D2
相关产品推荐
相关产品推荐

