¿Hay alguna forma de ver una lista de índices en una colección en mongodb en shell? Leí http://www.mongodb.org/display/DOCS/Indexes pero no veo nada
¿Hay alguna forma de ver una lista de índices en una colección en mongodb en shell? Leí http://www.mongodb.org/display/DOCS/Indexes pero no veo nada
Respuestas:
Si desea enumerar todos los índices:
db.getCollectionNames().forEach(function(collection) {
indexes = db.getCollection(collection).getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});
Y si desea obtener una lista de todos los índices en su base de datos:
use "yourdbname"
db.system.indexes.find()
Asegúrate de usar tu colección:
db.collection.getIndexes()
http://docs.mongodb.org/manual/administration/indexes/#information-about-indexes
También puede generar todos sus índices junto con su tamaño:
db.collectionName.stats().indexSizes
También verifique que db.collectionName.stats()
le brinde mucha información interesante como paddingFactor, tamaño de la colección y cantidad de elementos dentro de ella.
Dando un paso más allá, si desea encontrar todos los índices en todas las colecciones, este script (modificado del script de Juan Carlos Farah aquí ) le brinda una salida útil, incluida una impresión JSON de los detalles del índice:
// 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);
});
});
});
printjson(indexes);
debería serloprintjson(idx);