Jak wyświetlić listę wszystkich baz danych w powłoce mangowej?


Odpowiedzi:


244

Lista wszystkich baz danych w konsoli mongoDB korzysta z polecenia show dbs.

Aby uzyskać więcej informacji na ten temat, zapoznaj się z Pomocnikami poleceń powłoki Mongo , których można użyć w powłoce mongo.


15
I dla każdego (takiego jak ja), który właśnie zainstalował mongodb i jest zdezorientowany, że uruchomione dbpokazuje, że bieżąca baza danych jest, testale nie jest wymieniona za pomocą żadnego z poleceń na tej stronie, które są wyjaśnione tutaj stackoverflow.com/q/38726310/73226
Martin Smith,


2
@JamieHutber dostajesz taką powłokę, pisząc mongow wierszu poleceń ( mongo --nodbaby nie łączyć się z bazą danych)
magikMaker

Tak, musiałem tu przyjechać po coś tak prostego, jak show dbsdlatego, że kiedy poszedłem do dokumentów, po prostu show dbsnigdzie nie mogłem znaleźć polecenia. „Dokumenty” mogą być czasami frustrujące.
MadHatter

To polecenie nie działa --evaltylko w interaktywnej powłoce. Opcje tej odpowiedzi działają (chociaż format wyjściowy jest inny) stackoverflow.com/a/32192253/1837991
Gert van den Berg

55

W przypadku powłoki MongoDB w wersji 3.0.5 wstaw do powłoki następujące polecenie:

db.adminCommand('listDatabases')

lub alternatywnie:

db.getMongo().getDBNames()

2
jeśli jesteś w swojej skorupce i chcesz tylko nazwy: mongo admin --quiet -u <mongodb_admin> -p [<password>] --eval 'db.getMongo().getDBNames().forEach(function(db){print(db)})'hth
Boop

50

Dla listy baz danych:

show databases
show dbs

W przypadku tabeli / listy kolekcji:

show collections
show tables
db.getCollectionNames()

31

Z wydania wiersza poleceń

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

co daje wynik

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

2
Najlepsze rozwiązanie tutaj do uruchamiania czegoś zautomatyzowanego (bez przechodzenia najpierw w tryb powłoki mangowej)
herm

5

Aby wyświetlić bazę danych mongodb w powłoce

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

Kilka bardziej podstawowych poleceń

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

Znalazłem jedno rozwiązanie, w którym admin () / inne nie działały.

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()
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.