Как перечислить все базы данных в оболочке Монго?


205

Я знаю, как перечислить все коллекции в конкретной базе данных , но как мне перечислить все доступные базы данных в оболочке MongoDB?


2
Он находится show dbsв консоли mongo, просмотрите useful linksраздел в вики mongodb tag , прежде чем публиковать вопрос, иногда он может помочь вам быстрее найти решение.
Роберт Кристофер

Ответы:


245

Список всех баз данных в консоли mongoDB использует команду show dbs.

Для получения дополнительной информации об этом обратитесь к помощникам команд оболочки Mongo, которые можно использовать в оболочке mongo.


15
И для любого (как я), который только что установил mongodb и смущен тем, что при запуске dbотображается текущая база данных, testно это не указано ни в одной из команд на этой странице, что объясняется здесь stackoverflow.com/q/38726310/73226
Martin Смит

3
Как,
черт

2
@JamieHutber вы получаете такую ​​оболочку, печатая mongoв командной строке ( mongo --nodbчтобы не подключаться к базе данных)
magikMaker

Да, я должен был прийти сюда из-за чего-то show dbsтакого простого, как, потому что я, когда я шел в документы, я просто не мог найти show dbsкоманду нигде. «Документы» иногда могут быть довольно неприятными.
Безумный Шутник

Эта команда не работает в a --eval, только в интерактивной оболочке. Параметры этого ответа работают (хотя формат вывода отличается) stackoverflow.com/a/32192253/1837991
Герт ван ден Берг

55

Для оболочки оболочки MongoDB версии 3.0.5 вставьте в нее следующую команду:

db.adminCommand('listDatabases')

или альтернативно:

db.getMongo().getDBNames()

2
если вы находитесь в своей оболочке и хотите только имена: mongo admin --quiet -u <mongodb_admin> -p [<password>] --eval 'db.getMongo().getDBNames().forEach(function(db){print(db)})'hth
Boop

50

Для списка базы данных:

show databases
show dbs

Для таблицы / списка сбора:

show collections
show tables
db.getCollectionNames()

31

Из вопроса командной строки

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

который дает вывод

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

2
Лучшее решение здесь для запуска что - то автоматическое (без перехода в режим оболочки Монго первого)
Герм

5

Чтобы вывести базу данных mongodb на оболочку

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

Несколько более простых команд

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

Я нашел одно решение, где admin () / другие не работали.

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()
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.