Neben dem MongoDB-Befehl List Databases gibt es ein paar Alternativen, um Datenbanken auflisten zu lassen. List Databases selbst kann dafür mit verschiedenen Parametern modifiziert werden.
List Databases und seine Alternativen
Zwar arbeitet MongoDB anders als relationale Datenbankmanagementsysteme wie MySQL, allerdings ist auch bei der NoSQL-Lösung ein guter Überblick über alle Operationen und Daten der Schlüssel zu einer optimalen Verwaltung. Aus diesem Grund bietet das System verschiedene MongoDB Commands, um die hinterlegten Dokumente zu überprüfen.
Mit dem MongoDB-Befehl List Collections ist es möglich, Sammlungen aufzulisten, während List Databases für die Auflistung von Datenbanken genutzt wird. Der letztgenannte Befehl gibt dabei nicht nur die Namen der verschiedenen Datenbanken zurück, sondern liefert auch wertvolle Informationen über Speicherbelegung und Spezifikationen. Wer den MongoDB-Befehl List Databases nicht nutzen möchte, kann auch auf Alternativen zurückgreifen, die sich je nach Verwendungszweck anbieten.
Aufbau und Filter des List-Databases-Befehls
Der Command List Databases zeigt Ihnen alle verfügbaren Datenbanken an und liefert dazu einige grundsätzliche Statistiken. So behalten Sie den Überblick und wissen, ob Sie mit dem MongoDB-Befehl Create Database zusätzlich Datenbanken kreieren oder mit dem MongoDB-Befehl Drop Database eine Datenbank löschen müssen. Die Syntax des Befehls sieht folgendermaßen aus:
db.adminCommand ( { listDatabases: 1 } )
List Databases verfügt zusätzlich über vier optionale Parameter, durch die sich eine Auflistung noch zielgenauer machen lässt:
- filter: Dieses Dokument erlaubt Ihnen eine noch genauere Suche. Nutzen Sie diese Option, um Ihre Suchergebnisse zu filtern und dadurch bestimmte Datenbanken von vornherein auszuschließen. Die zulässigen Filterparameter sind name, sizeOnDisk, empty und shards.
- nameOnly: Mit dieser Option legen Sie fest, ob lediglich die Namen der Datenbanken ausgegeben werden sollen oder auch zusätzliche Informationen. nameOnly ist ein boolscher Wert, also true oder false.
- authorizedDatabases: Auch authorizedDatabases ist ein boolscher Wert. Mit dieser Option lässt sich festlegen, welche Datenbanken unterschiedlichen Nutzerinnen und Nutzern angezeigt werden. So können Sie zum Beispiel ausschließen, dass Personen ohne Berechtigung einen Überblick über alle Datenbanken erhalten.
- comment: Sie können den Befehl außerdem kommentieren. Der Kommentar darf dabei jedes passende BSON-Format haben.
Beispiel für List Databases
Am besten verstehen Sie die Funktionsweise des Befehls List Databases und seiner Parameter anhand eines Beispiels. Dafür stellen wir uns die Datenbanken eines Unternehmens vor. Geben Sie den entsprechenden Befehl ohne weitere Spezifikationen ein, erscheint eine solche Ausgabe:
db.adminCommand({listDatabases: 1})
{
"databases" : [
{
"name" : "admin",
"sizeOnDisk" : <size>,</size>
"empty" : false
},
{
"name" : "team",
"sizeOnDisk" : <size>,</size>
"empty" : false
},
{
"name" : "kunden_deutschland",
"sizeOnDisk" : <size>,</size>
"empty" : false
}
],
"name" : "kunden_frankreich",
"sizeOnDisk" : <size>,</size>
"empty" : false
}
],
"totalSize" : <totalsize></totalsize>
"totalSizeMb" : <totalsizemb>,</totalsizemb>
"ok" : 1
}
List Databases mit nameOnly
Wenn Sie nun den Wert nameOnly in „true“ ändern, sieht die Ausgabe von List Databases aus wie folgt:
db.adminCommand({listDatabases: 1, nameOnly: true})
{
"databases" : [
{
"name" : "admin",
},
{
"name" : "team",
},
{
"name" : "kunden_deutschland",
}
{
"name" : "kunden_frankreich",
}
],
"ok" : 1
}
List Databases mit Filter
Gerade wenn Sie zahlreiche Datenbanken verwenden, kann es sich anbieten, Ihre Suchkriterien für den Befehl List Databases noch weiter zu spezifizieren. Im folgenden Beispiel lassen wir uns auf diese Weise nur jene Datenbanken anzeigen, die mit den Buchstaben „kun“ beginnen:
>db.adminCommand({listDatabases: 1, filter: {"name": /^kun/}})
{
"databases" : [
{
"name" : "kunden_deutschland",
"sizeOnDisk" : <size>,</size>
"empty" : false
}
],
"name" : "kunden_frankreich",
"sizeOnDisk" : <size>,</size>
"empty" : false
}
],
"totalSize" : <totalsize></totalsize>
"totalSizeMb" : <totalsizemb>,</totalsizemb>
"ok" : 1
}
Alternativen zu List Databases
Neben List Databases haben Sie in MongoDB noch andere Möglichkeiten, sich die verfügbaren Datenbanken anzeigen zu lassen.
Option 1: show dbs und show databases
Eine sehr einfache Methode, um schnell einen Überblick über Ihre Datenbanken zu bekommen, ist der MongoDB-Befehl show dbs. Mit ihm lassen sich alle verfügbaren MongoDB Databases auflisten:
>show dbs
admin 0.007GB
team 0.013GB
kunden_deutschland 0.053GB
kunden_frankreich 0.027GB
***CODE***
Der Befehl Show databases funktioniert genauso:
***CODE***
>show databases
admin 0.007GB
team 0.0013GB
kunden_deutschland 0.053GB
kunden_frankreich 0.027GB
Hinweis
Beide Commands werden die entsprechenden Datenbanken erst dann erkennen, wenn diese mit Dokumenten gefüllt werden.
Option 2: get.DBNames
Auch die Methode db.getMongo().getDBNames() ist eine gute Alternative zum List-Databases-Befehl. Zwar werden hierbei keinerlei Zusatzinformationen ausgegeben, für eine gute Übersicht reicht dieser Weg aber dennoch. Die Ausgabe sieht beispielhaft so aus:
>db.getMongo().getDBNames()
[
"admin",
"team",
"kunden_deutschland",
"kunden_frankreich"
]