Wie kann ich in der MongoDB-Shell alle Sammlungen für die aktuelle Datenbank auflisten, die ich verwende?
Antworten
Zu viele Anzeigen?
Tarun Gupta
Punkte
6127
Indrajeet Singh
Punkte
2830
lxg
Punkte
215
Amitesh Bharti
Punkte
10156
1. show collections; // Display all collections
2. show tables // Display all collections
3. db.getCollectionNames(); // Return array of collection. Example :[ "orders", "system.profile" ]
Detaillierte Informationen zu jeder Kollektion:
db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
- Für Benutzer mit dem erforderlichen Zugriff (Berechtigungen, die die Aktion listCollections für die Datenbank gewähren), listet die Methode die Namen aller Sammlungen für die Datenbank auf.
- Für Benutzer ohne den erforderlichen Zugriff listet die Methode nur die Sammlungen auf, für die der Benutzer Berechtigungen hat. Hat ein Benutzer beispielsweise Zugriff auf eine bestimmte Sammlung in einer Datenbank, gibt die Methode nur diese Sammlung zurück.
Zum Auflisten von Sammlungen anhand eines Suchbegriffs.
db.getCollectionNames().filter(function (CollectionName) { return /<Search String>/.test(CollectionName) })
Exemple : Suche nach allen Sammlungen mit "import" im Namen
db.getCollectionNames().filter(function (CollectionName) { return /import/.test(CollectionName) })
Sood
Punkte
159
Die folgenden Befehle auf der Mongoshell sind üblich.
show databases
show collections
Auch,
show dbs
use mydb
db.getCollectionNames()
Manchmal ist es nützlich, alle Sammlungen sowie die Indizes der Sammlungen zu sehen, die Teil des gesamten Namensraums sind:
So würden Sie das tun:
db.getCollectionNames().forEach(function(collection) {
indexes = db[collection].getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});
Mit den drei Befehlen und diesem Schnipsel sollten Sie gut gerüstet sein!