mongoシェルですべてのデータベースを一覧表示するにはどうすればよいですか?


204

特定のデータベースのすべてのコレクション一覧表示する方法を知っていますが、MongoDBシェルで使用可能なすべてのデータベースを一覧表示するにはどうすればよいですか?


2
これshow dbsはmongo consoleにあります。質問を投稿する前useful linksに、mongodbタグwikiのセクションを参照してください。
Robert Christopher

回答:


244

mongoDBコンソールですべてのデータベースを一覧表示するには、コマンドを使用しshow dbsます。

詳細については、mongoシェルで使用できるMongoシェルコマンドヘルパーを参照してください。


15
そして、ちょうどMongoDBのをインストールしていると動作していることを混同している(私のような)人のためdbのショーを現在のデータベースがありtest、ここで説明されているこのページのcomnmandsのいずれかを介してこれがリストされていないstackoverflow.com/q/38726310/73226
マーティンスミス

3
どのようにして
一体

2
@JamieHutber mongoは、コマンドラインで(mongo --nodbデータベースに接続しないように)入力すると、シェルになります
magikMaker

ええ、私はshow dbsドキュメントに行ったとき、show dbsどこにもコマンドを見つけることができなかったので、単純なもののためにここに来なければなりませんでした。「ドキュメント」は時々かなりイライラすることがあります。
MadHatter 2018

このコマンドは--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
自動化されたものを実行するための最適なソリューション(最初にmongoシェルモードに入らない)
herm

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()/ othersが機能しなかった1つの解決策を見つけました。

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()
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.