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.