Gibt es eine Möglichkeit, eine Liste von Indizes für eine Sammlung in Mongodb in Shell anzuzeigen? Ich habe http://www.mongodb.org/display/DOCS/Indexes durchgelesen, aber ich sehe nichts
Gibt es eine Möglichkeit, eine Liste von Indizes für eine Sammlung in Mongodb in Shell anzuzeigen? Ich habe http://www.mongodb.org/display/DOCS/Indexes durchgelesen, aber ich sehe nichts
Antworten:
Wenn Sie alle Indizes auflisten möchten:
db.getCollectionNames().forEach(function(collection) {
indexes = db.getCollection(collection).getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});
Und wenn Sie eine Liste aller Indizes in Ihrer Datenbank erhalten möchten:
use "yourdbname"
db.system.indexes.find()
Stellen Sie sicher, dass Sie Ihre Sammlung verwenden:
db.collection.getIndexes()
http://docs.mongodb.org/manual/administration/indexes/#information-about-indexes
Sie können auch alle Ihre Indizes zusammen mit ihrer Größe ausgeben:
db.collectionName.stats().indexSizes
Überprüfen db.collectionName.stats()
Sie auch, ob Sie viele interessante Informationen wie paddingFactor, Größe der Sammlung und Anzahl der darin enthaltenen Elemente erhalten.
Wenn Sie noch einen Schritt weiter gehen und alle Indizes für alle Sammlungen finden möchten, bietet Ihnen dieses Skript (geändert von Juan Carlos Farahs Skript hier ) einige nützliche Ausgaben, einschließlich eines JSON-Ausdrucks der Indexdetails:
// 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);
sollte seinprintjson(idx);