Mongo kabuğundaki tüm veritabanları nasıl listelenir?


Yanıtlar:


248

MongoDB konsolundaki tüm veritabanlarını listelemek komutu kullanıyor show dbs.

Bununla ilgili daha fazla bilgi için , mongo kabuğunda kullanılabilen Mongo Kabuğu Komut Yardımcılarına bakın .


16
Ve mongodb'u yeni yüklemiş olan ve dbçalışmanın mevcut veritabanının gösterildiğini karıştıran herkes için (benim gibi) bu, testburada açıklanan bu sayfadaki herhangi bir comnmand tarafından listelenmiyor stackoverflow.com/q/38726310/73226
Martin Smith

3
Yine de dünyaya nasıl
ulaşacaksınız

2
@JamieHutber mongo( mongo --nodbbir veritabanına bağlanmak için değil) komut satırına yazarak çok kabuk olsun
magikMaker

Evet, buraya kadar basit bir şey için gelmeliydim show dbsçünkü belgelere gittiğimde show dbskomutu hiçbir yerde bulamadım . 'Dokümanlar' bazen oldukça sinir bozucu olabilir.
MadHatter

1
Bu komut --evalyalnızca etkileşimli bir kabukta, a'da çalışmaz . Bu yanıtlayıcının seçenekleri işe yarıyor (çıktı biçimi farklı olsa da) stackoverflow.com/a/32192253/1837991
Gert van den Berg

55

MongoDB kabuk sürüm 3.0.5 için kabuğa aşağıdaki komutu ekleyin:

db.adminCommand('listDatabases')

Veya alternatif olarak:

db.getMongo().getDBNames()

2
Eğer kabuğundaysanız ve sadece isimler istiyorsanız: mongo admin --quiet -u <mongodb_admin> -p [<password>] --eval 'db.getMongo().getDBNames().forEach(function(db){print(db)})'hth
Boop

50

Veritabanı listesi için:

show databases
show dbs

Tablo / koleksiyon listesi için:

show collections
show tables
db.getCollectionNames()

31

Komut satırı sorunundan

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

hangi çıktı verir

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

2
Otomatik bir şey çalıştırmak için en iyi çözüm (önce mongo kabuğu moduna girmeden)
herm

5

Mongodb veritabanını kabukta listelemek için

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

Birkaç temel komut daha

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

Yönetici () / diğerlerinin çalışmadığı bir çözüm buldum.

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()
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.