我试图在同一个输出中获取MongoDB索引的使用情况和大小。db.getCollection(collection).stats().indexSizes;给出了尺寸而db.getCollection(collection).aggregate({ "$indexStats": {} });仅给出用法。是否有一个命令可以同时输出这两个命令?
db.getCollection(collection).stats().indexSizes;
db.getCollection(collection).aggregate({ "$indexStats": {} });
cnwbcb6i1#
这两个查询可以在intellishell上组合,因为它使用类似于javascript的语法我们可以运行下面的脚本。
db = db.getSiblingDB("your-db-name"); const collections = db.getCollectionNames(); const result = []; for (const collection of collections) { const sizes = db.getCollection(collection).stats().indexSizes; const indexStats = db.getCollection(collection).aggregate({ "$indexStats": {} }).toArray(); for (const index of indexStats) { index.collection = collection; index.size = sizes[index.name]; result.push(index) } } print (result)
注意到到.toArray()的转换,以便容易地在其上循环。
.toArray()
1条答案
按热度按时间cnwbcb6i1#
这两个查询可以在intellishell上组合,因为它使用类似于javascript的语法我们可以运行下面的脚本。
注意到到
.toArray()
的转换,以便容易地在其上循环。