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); }); }); });