Czy istnieje sposób, aby wyświetlić listę indeksów w kolekcji w mongodb w powłoce? czytam http://www.mongodb.org/display/DOCS/Indexes, ale nic nie widzę
97
Czy istnieje sposób, aby wyświetlić listę indeksów w kolekcji w mongodb w powłoce? czytam http://www.mongodb.org/display/DOCS/Indexes, ale nic nie widzę
Z muszli:
db.test.getIndexes()
Aby uzyskać pomoc powłoki, powinieneś spróbować:
help;
db.help();
db.test.help();
Jeśli chcesz wyświetlić wszystkie indeksy:
db.getCollectionNames().forEach(function(collection) {
indexes = db.getCollection(collection).getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});
A jeśli chcesz uzyskać listę wszystkich indeksów w Twojej bazie danych:
use "yourdbname" db.system.indexes.find()
źródło
Upewnij się, że korzystasz ze swojej kolekcji:
http://docs.mongodb.org/manual/administration/indexes/#information-about-indexes
źródło
Możesz także wyprowadzić wszystkie swoje indeksy wraz z ich rozmiarem:
Sprawdź również, czy
db.collectionName.stats()
zawiera wiele interesujących informacji, takich jak współczynnik paddingFactor, rozmiar kolekcji i liczba elementów w niej zawartych.źródło
Biorąc to jeden krok dalej, jeśli chcesz znaleźć wszystkie indeksy na wszystkich kolekcji, skrypt (modyfikowany scenariusz Juan Carlos Farah jest tutaj ) daje pewne użyteczne wyjście, w tym JSON wydruku szczegółów index:
// 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); }); }); });
źródło
printjson(indexes);
powinno byćprintjson(idx);