データベースをリストするコマンド:show dbs vs. db.getMongo().getDBNames()

2024-04-02

MongoDBシェルで全てのデータベースをリストする方法

show dbsコマンドは、現在の接続先にある全てのデータベースの名前を表示します。これは最も簡単で分かりやすい方法です。

mongo
show dbs

出力例:

admin   0
config  0
local   0
test    0

db.getMongo().getDBNames()は、現在の接続先にある全てのデータベースの名前を配列として返します。

mongo
db.getMongo().getDBNames()
[ "admin", "config", "local", "test" ]

jsコマンドを使って、JavaScriptコードを実行することができます。以下のコードは、現在の接続先にある全てのデータベースの名前をループ処理で表示します。

mongo
js
var dbs = db.getMongo().getDBNames();
for (var i = 0; i < dbs.length; i++) {
  print(dbs[i]);
}
admin
config
local
test

db.adminCommand("listDatabases")は、listDatabasesコマンドを実行して、その結果を返します。

mongo
db.adminCommand("listDatabases")
{
  "databases" : [
    {
      "_id" : 1,
      "name" : "admin"
    },
    {
      "_id" : 2,
      "name" : "config"
    },
    {
      "_id" : 3,
      "name" : "local"
    },
    {
      "_id" : 4,
      "name" : "test"
    }
  ]
}

これらの方法のいずれでも、MongoDBシェルで全てのデータベースをリストすることができます。どの方法を使うかは、あなたの好みや状況によって決めてください。

補足

  • show dbsコマンドは、db.getMongo().getDBNames()よりも高速に動作します。
  • db.getMongo().getDBNames()は、show dbsコマンドよりも多くの情報を提供します。
  • jsコマンドを使って、データベースの名前を処理したり、フィルタリングしたりすることができます。



// 1. `show dbs`コマンドを使う

mongo
show dbs

// 2. `db.getMongo().getDBNames()`を使う

mongo
db.getMongo().getDBNames()

// 3. `js`コマンドを使う

mongo
js
var dbs = db.getMongo().getDBNames();
for (var i = 0; i < dbs.length; i++) {
  print(dbs[i]);
}

// 4. `db.adminCommand("listDatabases")`を使う

mongo
db.adminCommand("listDatabases")

このサンプルコードを実行すると、現在の接続先にある全てのデータベースの名前が表示されます。

admin
config
local
test

このサンプルコードを参考に、ニーズに合った方法でMongoDBシェルで全てのデータベースをリストしてみてください。




他の方法

db.stats()コマンドは、現在のデータベースの統計情報を表示します。この情報には、データベースの名前も含まれています。

mongo
db.stats()
{
  "db" : "test",
  "collections" : 0,
  "objects" : 0,
  "avgObjSize" : 0,
  "dataSize" : 0,
  "storageSize" : 4096,
  "fileSize" : 4096,
  "nsSize" : 4096,
  "indexes" : 0,
  "totalIndexSize" : 0,
  "indexSizes" : {},
  "ok" : 1
}

mongodumpコマンドは、データベースをダンプします。ダンプファイルには、データベースの名前も含まれています。

mongodump --uri mongodb://localhost:27017/test --out /tmp/test

Robo 3TなどのGUIツールを使っても、MongoDBのデータベースをリストすることができます。

これらの方法は、上記で紹介した方法よりも複雑ですが、より多くの情報を提供することができます。ニーズに合った方法を選んでください。


database mongodb mongodb-query


MySQL 8.0で自動インデックス作成機能を利用するサンプルコード

自動インデックス作成機能は、データベースがワークロードを分析し、必要に応じてインデックスを自動的に作成・削除する機能です。従来の手動によるインデックス管理と比較すると、以下のメリットがあります。メリット:データベース管理者の負担軽減: インデックスの作成・削除を自動化することで、データベース管理者の負担を軽減できます。...


Oracleデータベースでリモートストアドプロシージャを呼び出すための4つの方法

このチュートリアルでは、データベースリンクを使用して Oracle ストアドプロシージャを実行する方法を説明します。データベースリンクは、異なるデータベース間で接続を作成する仮想的なネットワークリンクです。この方法を使用すると、ローカルデータベースからリモートデータベースにあるストアドプロシージャを直接呼び出すことができます。...


データベースキャッシュの種類とメリット・デメリット

キャッシュは、メインメモリよりも高速な記憶装置(CPUキャッシュなど)や、メインメモリよりも容量が大きい記憶装置(ディスクなど)に保存されます。データアクセス時に、まずキャッシュに該当するデータが存在するかどうかを確認します。存在する場合は、キャッシュからデータを読み込み、アクセスを完了します。存在しない場合は、データベースからデータを読み込み、キャッシュに保存してからアクセスを完了します。...


パフォーマンスとスケーラビリティの向上:データベースとWebサーバーを分離する方法

セキュリティ攻撃対象拡大: データベースとWebサーバーを同じマシンに配置すると、攻撃対象が1台のマシンに集中することになります。もし、このマシンが脆弱性を持っている場合、Webサーバー経由でデータベースに不正アクセスされるリスクが高まります。...


MySQL、MongoDB、NoSQLデータベース:財務データ管理におけるそれぞれの役割

スキーマレスな財務データ とは、あらかじめ定義された構造を持たない財務データのことです。これは、従来の SQL データベース で使用される 構造化データ とは対照的です。構造化データは、行と列で組織され、各列には特定のデータ型が割り当てられます。...