Come elencare tutti i database nella shell mongo?


Risposte:


244

Elencare tutti i database nella console mongoDB sta usando il comando show dbs.

Per ulteriori informazioni al riguardo, consultare gli Helpers di comando della shell Mongo che possono essere utilizzati nella shell mongo.


15
E per chiunque (come me) che ha appena installato mongodb e sia confuso che in esecuzione dbmostra che il database corrente è testma questo non è elencato tramite nessuno dei comandi in questa pagina che è spiegato qui stackoverflow.com/q/38726310/73226
Martin Smith,


2
@JamieHutber ottieni così shell digitando mongosulla riga di comando ( mongo --nodbper non connettersi a un database)
magikMaker

Sì, dovevo venire qui per qualcosa di semplice come show dbsquando, quando sono andato alla documentazione, semplicemente non riuscivo a trovare il show dbscomando da nessuna parte. I "documenti" a volte possono essere piuttosto frustranti.
MadHatter,

Questo comando non funziona in a --eval, solo su una shell interattiva. Le opzioni di questa risposta funzionano (il formato di output è diverso però) stackoverflow.com/a/32192253/1837991
Gert van den Berg

55

Per MongoDB shell versione 3.0.5 inserire il seguente comando nella shell:

db.adminCommand('listDatabases')

o in alternativa:

db.getMongo().getDBNames()

2
se sei nella tua shell e vuoi solo nomi: mongo admin --quiet -u <mongodb_admin> -p [<password>] --eval 'db.getMongo().getDBNames().forEach(function(db){print(db)})'hth
Boop,

50

Per l'elenco dei database:

show databases
show dbs

Per l'elenco di tabelle / collezioni:

show collections
show tables
db.getCollectionNames()

31

Dal problema della riga di comando

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

che dà output

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

2
La migliore soluzione qui per eseguire qualcosa di automatizzato (senza entrare prima nella modalità shell mongo)
herm

5

Per elencare il database mongodb sulla shell

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

Pochi altri comandi di base

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

Ho trovato una soluzione, in cui admin () / altri non ha funzionato.

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()
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.