Eu sei como listar todas as coleções em um banco de dados específico , mas como listar todos os bancos de dados disponíveis no shell do MongoDB?
Eu sei como listar todas as coleções em um banco de dados específico , mas como listar todos os bancos de dados disponíveis no shell do MongoDB?
Respostas:
Listando todos os bancos de dados no MongoDB console é usando o comando show dbs
.
Para obter mais informações, consulte os Mongo Shell Command Helpers que podem ser usados no mongo shell.
db
mostra que o banco de dados atual é, test
mas isso não está listado em nenhum dos comandos nesta página, explicados aqui stackoverflow.com/q/38726310/73226
mongo
na linha de comando (de mongo --nodb
não se conectar a um banco de dados)
show dbs
porque, quando fui à documentação, simplesmente não consegui encontrar o show dbs
comando em lugar algum. Os 'documentos' podem ser bastante frustrantes às vezes.
--eval
, apenas em um shell interativo. As opções desta resposta funcionam (embora o formato de saída seja diferente) stackoverflow.com/a/32192253/1837991
Para o shell do MongoDB versão 3.0.5, insira o seguinte comando no shell:
db.adminCommand('listDatabases')
ou alternativamente:
db.getMongo().getDBNames()
mongo admin --quiet -u <mongodb_admin> -p [<password>] --eval 'db.getMongo().getDBNames().forEach(function(db){print(db)})'
hth
Para lista de banco de dados:
show databases
show dbs
Para tabela / lista de coleção:
show collections
show tables
db.getCollectionNames()
No problema da linha de comando
mongo --quiet --eval "printjson(db.adminCommand('listDatabases'))"
o que dá saída
{
"databases" : [
{
"name" : "admin",
"sizeOnDisk" : 978944,
"empty" : false
},
{
"name" : "local",
"sizeOnDisk" : 77824,
"empty" : false
},
{
"name" : "meteor",
"sizeOnDisk" : 778240,
"empty" : false
}
],
"totalSize" : 1835008,
"ok" : 1
}
Para listar o banco de dados mongodb no shell
show databases //Print a list of all available databases.
show dbs // Print a list of all databases on the server.
Poucos comandos mais básicos
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.
Eu encontrei uma solução em que admin () / others não funcionou.
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
no console do mongo. Por favor, consulte auseful links
seção no wiki da tag mongodb . Antes de postar uma pergunta, às vezes pode ajudar você a encontrar uma solução mais rapidamente.