Wie liste ich alle Datenbanken in der Mongo-Shell auf?


Antworten:


243

Das Auflisten aller Datenbanken in der MongoDB-Konsole verwendet den Befehl show dbs.

Weitere Informationen hierzu finden Sie in den Mongo Shell-Befehlshelfern , die in der Mongo-Shell verwendet werden können.


15
Und für alle (wie mich), die gerade Mongodb installiert haben und verwirrt sind, dass beim Ausführen dbdie aktuelle Datenbank angezeigt wird test, dies jedoch nicht über einen der Befehle auf dieser Seite aufgeführt ist, die hier erläutert werden. Stackoverflow.com/q/38726310/73226
Martin Smith

3
Wie um alles in der Welt kommst du zum Ziel: /
Jamie Hutber

2
@ JamieHutber Sie erhalten so Shell, indem Sie mongoin der Befehlszeile eingeben ( mongo --nodbum keine Verbindung zu einer Datenbank
herzustellen

Ja, ich musste wegen etwas so Einfachem hierher kommen, show dbsweil ich, als ich zu den Dokumenten ging, den show dbsBefehl einfach nirgendwo finden konnte. Die "Dokumente" können manchmal ziemlich frustrierend sein.
MadHatter

Dieser Befehl funktioniert nicht in einer --eval, sondern nur in einer interaktiven Shell. Die Optionen dieser Antwort funktionieren (das Ausgabeformat ist jedoch unterschiedlich) stackoverflow.com/a/32192253/1837991
Gert van den Berg

55

Fügen Sie für die MongoDB-Shell-Version 3.0.5 den folgenden Befehl in die Shell ein:

db.adminCommand('listDatabases')

oder alternativ:

db.getMongo().getDBNames()

2
Wenn Sie in Ihrer Shell sind und nur Namen wollen: mongo admin --quiet -u <mongodb_admin> -p [<password>] --eval 'db.getMongo().getDBNames().forEach(function(db){print(db)})'hth
Boop

50

Für die Datenbankliste:

show databases
show dbs

Für Tabelle / Sammlungsliste:

show collections
show tables
db.getCollectionNames()

31

Über die Befehlszeile

mongo --quiet --eval  "printjson(db.adminCommand('listDatabases'))"

das gibt Ausgabe

{
    "databases" : [
        {
            "name" : "admin",
            "sizeOnDisk" : 978944,
            "empty" : false
        },
        {
            "name" : "local",
            "sizeOnDisk" : 77824,
            "empty" : false
        },
        {
            "name" : "meteor",
            "sizeOnDisk" : 778240,
            "empty" : false
        }
    ],
    "totalSize" : 1835008,
    "ok" : 1
}

2
Die beste Lösung hier, um etwas Automatisiertes auszuführen (ohne zuerst in den Mongo-Shell-Modus zu wechseln)
Herm

4

Zum Auflisten der Mongodb-Datenbank auf der Shell

 show databases     //Print a list of all available databases.
 show dbs   // Print a list of all databases on the server.

Einige grundlegendere Befehle

use <db>    // Switch current database to <db>. The mongo shell variable db is set to the current database.
show collections    //Print a list of all collections for current database.
show users  //Print a list of users for current database.
show roles  //Print a list of all roles, both user-defined and built-in, for the current database.

0

Ich habe eine Lösung gefunden, bei der admin () / andere nicht funktionierten.

const { promisify } = require('util');
const exec = promisify(require('child_process').exec)
async function test() {
  var res = await exec('mongo  --eval "db.adminCommand( { listDatabases: 1 }         
)" --quiet')
  return { res }
}

test()
  .then(resp => {
    console.log('All dbs', JSON.parse(resp.res.stdout).databases)
  })
test()
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.