MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBの「show dbs」コマンドに相当するBSONクエリとは?listDatabasesの使い方を解説

MongoDBでは、シェル上でshow dbsコマンドを使うとデータベースの一覧を簡単に確認できます。しかし、アプリケーションやドライバから同じ情報を取得したい場合など、BSON形式のクエリとして直接コマンドを実行したいケースがあります。

そのような場合は、db.runCommand()メソッドを使用します。以下の手順で実行できます。

手順1:adminデータベースに切り替える

listDatabasesコマンドはadminデータベースに対して実行する必要があるため、まずadminに切り替えます。

> use admin
switched to db admin

手順2:listDatabasesコマンドを実行する

続いて、以下のコマンドを実行します。

> db.runCommand({listDatabases : 1})

このコマンドは「show dbs」と同等の働きをし、サーバー上に存在するすべてのデータベースの一覧を返します。実行すると、次のような出力が得られます。

{
    "databases" : [
        {
            "name" : "admin",
            "sizeOnDisk" : 2375680,
            "empty" : false
        },
        {
            "name" : "app",
            "sizeOnDisk" : 32768,
            "empty" : false
        },
        {
            "name" : "business",
            "sizeOnDisk" : 417792,
            "empty" : false
        },
        {
            "name" : "config",
            "sizeOnDisk" : 106496,
            "empty" : false
        },
        {
            "name" : "local",
            "sizeOnDisk" : 81920,
            "empty" : false
        },
        {
            "name" : "main",
            "sizeOnDisk" : 184320,
            "empty" : false
        },
        {
            "name" : "my",
            "sizeOnDisk" : 753664,
            "empty" : false
        },
        {
            "name" : "ok",
            "sizeOnDisk" : 1024000,
            "empty" : false
        },
        {
            "name" : "sample",
            "sizeOnDisk" : 3297280,
            "empty" : false
        },
        {
            "name" : "sampleDemo",
            "sizeOnDisk" : 352256,
            "empty" : false
        },
        {
            "name" : "studentSearch",
            "sizeOnDisk" : 262144,
            "empty" : false
        },
        {
            "name" : "test",
            "sizeOnDisk" : 32944128,
            "empty" : false
        },
        {
            "name" : "university",
            "sizeOnDisk" : 229376,
            "empty" : false
        },
        {
            "name" : "web",
            "sizeOnDisk" : 3661824,
            "empty" : false
        },
        {
            "name" : "webcustomertracker",
            "sizeOnDisk" : 32768,
            "empty" : false
        }
    ],
    "totalSize" : 45756416,
    "ok" : 1
}

出力結果の各フィールドの意味

返されるドキュメントには、以下の情報が含まれています。

  • databases:存在するデータベースの情報が配列形式で格納されます。
  • name:データベースの名前です。
  • sizeOnDisk:そのデータベースがディスク上で占有しているサイズ(バイト単位)です。
  • empty:データベースが空の場合はtrue、データが存在する場合はfalseになります。
  • totalSize:すべてのデータベースの合計サイズ(バイト単位)です。
  • ok:コマンドが正常に完了したことを示すステータスで、1なら成功です。

このように、db.runCommand({listDatabases : 1})を使えば、show dbsコマンドと同じ情報をプログラムから扱いやすいBSONドキュメントとして取得できます。権限管理の観点からも、listDatabasesアクションが許可されたユーザーでのみ実行可能である点に注意してください。

  1. MySQLで金額(通貨)を扱うならDECIMAL型一択!正しい使い方を実例付きで解説

    MySQLで金額(通貨)のデータを扱う場合、最も推奨されるデータ型は DECIMAL 型です。FLOAT や DOUBLE のような浮動小数点型は誤差が発生する可能性があるため、正確な金額計算が必要な場面では DECIMAL 型を使うのがベストプラクティスとされています。DECIMAL型の基本構文DECIMAL 型は、全体の桁数と小数点以下の桁数を指定して定義します。構文は以下の通りです。DECIMAL(総桁数, 小数点以下の桁数);サンプルテーブルの作成それでは、実際にテーブルを作成して動作を確認してみましょう。以下のクエリでテーブルを作成します。mysql> create table

  2. C#でリストを並べ替える方法を解説!Sort()メソッドの使い方

    C#でリスト(List)の要素を並べ替えるには、Sort()メソッドを使用します。Sort()メソッドは、リスト内の要素を既定の比較子に従って昇順に並べ替えてくれる便利なメソッドです。ここでは、文字列型のリストを作成し、Sort()メソッドでアルファベット順に並べ替える基本的な手順を紹介します。リストの作成まず、並べ替え対象となるリストを作成します。List<string> myList = new List<string>();要素の追加次に、Add()メソッドを使ってリストに要素を追加していきます。myList.Add(Audi); myList.Add(BMW);