Як перелічити всі бази даних в оболонці монго?


204

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


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

Відповіді:


244

Перерахування всіх баз даних на консолі mongoDB використовується за допомогою команди show dbs.

Для отримання додаткової інформації про це, зверніться до помічників командної оболонки Монго, які можна використовувати в оболонці монго.


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

3
Як на землі ти потрапляєш, хоча: /
Джеймі Хатбер

2
@JamieHutber ви отримуєте так оболонку, ввівши mongoкомандний рядок ( mongo --nodbщоб не підключатися до бази даних)
magikMaker

Так, я повинен був приїхати сюди для чогось такого простого, як show dbsтому, що коли я заходив у документи, просто show dbsніде не міг знайти команду. "Документи" часом можуть бути дуже неприємними.
MadHatter

Ця команда не працює в --eval, лише на інтерактивній оболонці. Параметри цієї відповіді спрацьовують (формат виводу відрізняється, хоча) stackoverflow.com/a/32192253/1837991
Gert van den Berg

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

Я знайшов одне рішення, де адміністратор () / інші не працювали.

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.