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.

Robert Christopher
quelle
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()
Carlos F. Enguix
quelle
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()
Amol Udage
quelle
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
}
Scott Stensland
quelle
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.
Amitesh
quelle
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()
Rohit Parte
quelle