Sé cómo enumerar todas las colecciones en una base de datos particular , pero ¿cómo enumero todas las bases de datos disponibles en el shell MongoDB?
Sé cómo enumerar todas las colecciones en una base de datos particular , pero ¿cómo enumero todas las bases de datos disponibles en el shell MongoDB?
Respuestas:
Listar todas las bases de datos en la consola mongoDB está usando el comando show dbs
.
Para obtener más información sobre esto, consulte los Ayudantes de comando de Mongo Shell que se pueden usar en el shell de mongo.
db
muestra la base de datos actual, test
pero esto no aparece en ninguno de los comandos de esta página que se explican aquí stackoverflow.com/q/38726310/73226
mongo
en la línea de comando ( mongo --nodb
para no conectarse a una base de datos)
show dbs
porque cuando fui a los documentos simplemente no podía encontrar el show dbs
comando en ningún lado. Los 'documentos' pueden ser bastante frustrantes a veces.
--eval
, solo en un shell interactivo. Las opciones de esta respuesta funcionan (aunque el formato de salida es diferente) stackoverflow.com/a/32192253/1837991
Para MongoDB shell versión 3.0.5 inserte el siguiente comando en el shell:
db.adminCommand('listDatabases')
o alternativamente:
db.getMongo().getDBNames()
mongo admin --quiet -u <mongodb_admin> -p [<password>] --eval 'db.getMongo().getDBNames().forEach(function(db){print(db)})'
hth
Para la lista de la base de datos:
show databases
show dbs
Para la tabla / lista de colección:
show collections
show tables
db.getCollectionNames()
Desde el problema de la línea de comando
mongo --quiet --eval "printjson(db.adminCommand('listDatabases'))"
que da salida
{
"databases" : [
{
"name" : "admin",
"sizeOnDisk" : 978944,
"empty" : false
},
{
"name" : "local",
"sizeOnDisk" : 77824,
"empty" : false
},
{
"name" : "meteor",
"sizeOnDisk" : 778240,
"empty" : false
}
],
"totalSize" : 1835008,
"ok" : 1
}
Para enumerar la base de datos mongodb en shell
show databases //Print a list of all available databases.
show dbs // Print a list of all databases on the server.
Pocos comandos más 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.
He encontrado una solución, donde admin () / others no funcionó.
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
en la consola de mongo, vaya a lauseful links
sección en el wiki de la etiqueta mongodb , antes de publicar una pregunta, a veces puede ayudarlo a llegar a una solución más rápido.