Wiem, jak wyświetlić listę wszystkich kolekcji w określonej bazie danych , ale jak wyświetlić listę wszystkich dostępnych baz danych w powłoce MongoDB?
Wiem, jak wyświetlić listę wszystkich kolekcji w określonej bazie danych , ale jak wyświetlić listę wszystkich dostępnych baz danych w powłoce MongoDB?
Odpowiedzi:
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.
db
pokazuje, że bieżąca baza danych jest, test
ale nie jest wymieniona za pomocą żadnego z poleceń na tej stronie, które są wyjaśnione tutaj stackoverflow.com/q/38726310/73226
mongo
w wierszu poleceń ( mongo --nodb
aby nie łączyć się z bazą danych)
show dbs
dlatego, że kiedy poszedłem do dokumentów, po prostu show dbs
nigdzie nie mogłem znaleźć polecenia. „Dokumenty” mogą być czasami frustrujące.
--eval
tylko w interaktywnej powłoce. Opcje tej odpowiedzi działają (chociaż format wyjściowy jest inny) stackoverflow.com/a/32192253/1837991
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()
mongo admin --quiet -u <mongodb_admin> -p [<password>] --eval 'db.getMongo().getDBNames().forEach(function(db){print(db)})'
hth
Dla listy baz danych:
show databases
show dbs
W przypadku tabeli / listy kolekcji:
show collections
show tables
db.getCollectionNames()
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
}
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.
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()
show dbs
w konsoli Mongo, proszę przejść douseful links
sekcji w MongoDB tag wiki , przed wysłaniem pytanie, może czasami pomóc osiągnąć rozwiązanie szybciej.