Bagaimana cara membuat daftar semua basis data di mongo shell?


Jawaban:


244

Daftar semua database di konsol mongoDB menggunakan perintah show dbs.

Untuk informasi lebih lanjut tentang ini, lihat Pembantu Komando Shell Mongo yang dapat digunakan dalam shell mongo.


15
Dan bagi siapa pun (seperti saya) yang baru saja menginstal mongodb dan bingung menjalankan dbmenunjukkan database saat ini testtetapi ini tidak terdaftar melalui salah satu comnmand pada halaman ini yang dijelaskan di sini stackoverflow.com/q/38726310/73226
Martin Smith

3
Bagaimana Anda bisa sampai ke wajib sekalipun: /
Jamie Hutber

2
@JamieHutber Anda jadi shell dengan mengetik mongopada baris perintah ( mongo --nodbuntuk tidak terhubung ke database)
magikMaker

Ya saya harus datang ke sini untuk sesuatu yang sederhana show dbskarena saya ketika saya pergi ke docs saya tidak bisa menemukan show dbsperintah di mana pun. 'Dokumen' terkadang cukup membuat frustrasi.
MadHatter

Perintah itu tidak berfungsi dalam --eval, hanya pada shell interaktif. Opsi jawaban ini bekerja (format output berbeda) stackoverflow.com/a/32192253/1837991
Gert van den Berg

55

Untuk MongoDB shell versi 3.0.5 masukkan perintah berikut ke dalam shell:

db.adminCommand('listDatabases')

atau sebagai alternatif:

db.getMongo().getDBNames()

2
jika Anda berada di shell Anda dan hanya ingin nama: mongo admin --quiet -u <mongodb_admin> -p [<password>] --eval 'db.getMongo().getDBNames().forEach(function(db){print(db)})'hth
Boop

50

Untuk daftar basis data:

show databases
show dbs

Untuk tabel / daftar koleksi:

show collections
show tables
db.getCollectionNames()

31

Dari masalah baris perintah

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

yang memberikan hasil

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

2
Solusi terbaik di sini untuk menjalankan sesuatu yang otomatis (tanpa masuk ke mode mongo shell terlebih dahulu)
herm

5

Untuk daftar basis data mongodb pada shell

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

Lebih sedikit perintah dasar

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

Saya telah menemukan satu solusi, di mana admin () / lainnya tidak berfungsi.

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()
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.