MongoDB: List Collections und andere Auflistungsoptionen

Es gibt vier verschiedene Möglichkeiten, um in MongoDB Collections aufzulisten: List Collections, Show Collections, db.getCollectionNames() und db.getCollectionInfos(). Der erstgenannte Befehl ist am gängigsten und zeigt Ihnen alle Namen und Optionen Ihrer Listen an.

Collections als Listen in MongoDB anzeigen

Das NoSQL-Datenbankmanagementsystem MongoDB zeichnet sich durch eine hohe Flexibilität und Skalierbarkeit aus. Anders als z. B. MySQL setzt das System dabei nicht auf Tabellen, sondern speichert Daten als Dokumente in Sammlungen. Diese sogenannten Collections können Sie mit dem MongoDB-Befehl Create Collection erstellen und über den MongoDB-Befehl Drop Collection entfernen.

Um einen Überblick über alle Sammlungen zu gewinnen, kennt das System diverse MongoDB Commands. Möchten Sie sich mehrere oder alle Sammlungen anzeigen lassen, haben Sie die Wahl zwischen den Befehlen List Collections und Show Collections sowie den Methoden db.getCollectionNames() und db.getCollectionInfos().

Der List-Collections-Befehl

Der MongoDB-Befehl List Collections ist ein besonders praktischer Weg, sich sämtliche oder alle Sammlungen anzeigen zu lassen. Er gibt sämtliche Namen und Optionen der einzelnen Listen aus und kann durch mehrere Parameter spezifiziert werden.

Syntax von List Collections

Der Command List Collections wird folgendermaßen gebildet:

{listCollections: 1, filter: <document>, nameOnly: <boolean>, authorizedCollections: <boolean>, comment: <any>}

Die vier optionalen Parameter von List Collections sind:

  • filter: Mit diesem Dokument passen Sie Ihre Suchanfrage an.
  • nameOnly: Dies ist ein boolscher Wert, der festlegt, ob lediglich der Name der jeweiligen Sammlung oder auch weiterführende Informationen ausgegeben werden sollen.
  • authorizedCollections: Mit diesem boolschen Wert limitieren Sie den Zugriff auf die Auflistung und gestatten diesen nur Usern mit entsprechenden Rechten.
  • comment: Diese Option ermöglicht Ihnen eine nähere Beschreibung oder Markierung der Suchanfrage.
Tipp: Managed MongoDB von IONOS

Mit Managed MongoDB von IONOS können Sie sich auf das Wesentliche konzentrieren. Ob Installation, Betrieb oder Wartungsarbeiten, IONOS sorgt für einen zuverlässigen Betrieb Ihrer hochperformanten Datenbanken.

Anwendungsbeispiel für List Collections

Der Befehl lässt sich wie im folgenden Beispiel anwenden:

db.runCommand({listCollections: 1, authorizedCollections: true, nameOnly: true})

Die Ausgabe ist dann ein Cursor mit den verfügbaren Informationen. So sieht das beispielhaft aus:

"cursor" : {
"id" : NumberLong (0),
"ns" : "Kundenliste.$cmd.listCollections",
"firstBatch" : [
{
"name" : "liste.deutschland",
"type" : "collection"
},
{
"name" : "liste.frankreich",
"type" : "collection"
},
{
"name" : "liste.italien",
"type" : "collection"
}
]
},
"ok" : 1
}

Auflistungsalternative 1: Show Collections

Möchten Sie sich einfach einen schnellen Überblick über die Sammlungen in Ihrer aktuellen Datenbank verschaffen, ist der Befehl Show Collections eine gute Wahl. Auch mit diesem Command lassen sich MongoDB-Collections auflisten. Dafür rufen Sie zunächst die entsprechende Datenbank auf und fragen dann alle Sammlungen ab. Dies ist die entsprechende Ausgabe:

>use kundenliste
>show collections
liste.deutschland
liste.frankreich
liste.italien

Auflistungsalternative 2: db.getCollectionNames()

Für einen schnellen Blick auf die Sammlungen in Ihrer Datenbank eignet sich auch die Methode db.getCollectionNames(). Diese gibt lediglich die Namen der unterschiedlichen Sammlungen zurück und bietet sich vor allem dann an, wenn Sie lediglich ein paar MongoDB-Collections auflisten möchten. Die Ein- und Ausgabe sieht folgendermaßen aus:

>db.getCollectionNames();
[
"liste.deutschland",
"liste.frankreich",
"liste.italien"
]

Auflistungsalternative 3: db.getCollectionInfos()

Für einen genauen Blick auf die Liste der MongoDB-Collections bietet sich die Methode db.getCollectionInfos() an. Diese gibt neben dem reinen Namen auch sämtliche relevanten Zusatzinformationen aus. Für die erste Collection sieht das beispielsweise so aus:

>db.getCollectionInfos();
[
{
"name" : "liste.deutschland",
"type" : "collection",
"options" : {
},
"info" : {
"readOnly" : true,
"uuid" : UUID (<uuid>)</uuid>
},
"idIndex" : {
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_iod_"
}
},