MongoDB中的索引列表?
有没有办法看到在mongodb在壳集合索引列表? 我通过http://www.mongodb.org/display/DOCS/Indexes阅读,但我没有看到任何东西
从shell:
db.test.getIndexes()
对于shell帮助你应该尝试:
help; db.help(); db.test.help();
如果你想获得数据库中所有索引的列表:
use "yourdbname" db.system.indexes.find()
确保你使用你的collections:
db.collection.getIndexes()
http://docs.mongodb.org/manual/administration/indexes/#information-about-indexes
您也可以输出所有索引及其大小:
db.collectionName.stats().indexSizes
还要检查db.collectionName.stats()
给你提供了很多有趣的信息,例如paddingFactor,集合的大小和元素数量。
如果你想列出所有的索引:
db.getCollectionNames().forEach(function(collection) { indexes = db[collection].getIndexes(); print("Indexes for " + collection + ":"); printjson(indexes); });
更进一步,如果您想要查找所有集合中的所有索引,则此脚本( 在此处由Juan Carlos Farah的脚本进行修改)将为您提供一些有用的输出,其中包括索引详细信息的JSON打印输出:
// Switch to admin database and get list of databases. db = db.getSiblingDB("admin"); dbs = db.runCommand({ "listDatabases": 1}).databases; // Iterate through each database and get its collections. dbs.forEach(function(database) { db = db.getSiblingDB(database.name); cols = db.getCollectionNames(); // Iterate through each collection. cols.forEach(function(col) { //Find all indexes for each collection indexes = db[col].getIndexes(); indexes.forEach(function(idx) { print("Database:" + database.name + " | Collection:" +col+ " | Index:" + idx.name); printjson(indexes); }); }); });