【MongoDB】シェルですべてのデータベースを一覧表示・操作する方法
MongoDBシェルですべてのデータベースを操作する方法
MongoDBシェルからすべてのデータベースを一覧表示・操作するには、adminCommand()メソッドとlistDatabasesコマンドを組み合わせて使用します。
ここでは、サンプルデータベース「test」を使用しているものとします。まずは、dbコマンドで現在接続しているデータベースを確認しましょう。
1. 現在のデータベースを確認する
現在のデータベースを取得するクエリは以下の通りです。
> db;
このクエリを実行すると、次のような出力が得られます。
Test
2. すべてのデータベースの一覧を取得する
Mongoシェルからすべてのデータベースの情報を取得するには、以下のクエリを実行します。
> var allDatabaseList = db.adminCommand('listDatabases');
このコマンドにより、サーバー上に存在するすべてのデータベースの情報が、変数allDatabaseListに格納されます。
3. 結果を整形して表示する
取得した結果を読みやすく表示するには、printjson()を使用します。クエリは以下の通りです。
> printjson(allDatabaseList);
実行すると、次のような出力が得られます。
{
"databases" : [
{
"name" : "admin",
"sizeOnDisk" : 495616,
"empty" : false
},
{
"name" : "config",
"sizeOnDisk" : 98304,
"empty" : false
},
{
"name" : "local",
"sizeOnDisk" : 73728,
"empty" : false
},
{
"name" : "sample",
"sizeOnDisk" : 1388544,
"empty" : false
},
{
"name" : "sampleDemo",
"sizeOnDisk" : 278528,
"empty" : false
},
{
"name" : "studentSearch",
"sizeOnDisk" : 262144,
"empty" : false
},
{
"name" : "test",
"sizeOnDisk" : 9695232,
"empty" : false
}
],
"totalSize" : 12292096,
"ok" : 1
}
出力結果の見方
出力には以下の情報が含まれています。
- name:データベース名(「admin」「config」「local」はMongoDBが内部的に使用するシステムデータベースです)
- sizeOnDisk:ディスク上でそのデータベースが占めるサイズ(バイト単位)
- empty:データベースが空かどうかを示す真偽値(falseはデータが存在することを意味します)
- totalSize:すべてのデータベースの合計サイズ(バイト単位)
- ok:コマンドの実行ステータス(1は正常終了を意味します)
このように、db.adminCommand('listDatabases')を使えば、MongoDBシェルからサーバー上の全データベースの名前やサイズを一括して確認でき、データベース管理やディスク使用量の把握に非常に便利です。
-
Javaを使ってMongoDBコレクションからすべてのドキュメントを取得する方法
MongoDBでは、find()メソッドを使用することで、既存のコレクションからドキュメントを取得できます。この記事では、MongoDBシェルでの基本操作と、Javaプログラムからすべてのドキュメントを取得する手順について詳しく解説します。MongoDBシェルでの構文db.coll.find()各要素の意味は以下のとおりです。db:対象となるデータベースcoll:ドキュメントを取得したいコレクションの名前シェルでの実行例ここでは、MongoDBデータベース内に「students」というコレクションがあり、次のドキュメントが登録されているものとします。{name:"Ram",
-
JavaでMongoDBの全データベース一覧を取得する方法
MongoDBでは、シェル上で show dbs コマンドを実行するだけで、サーバー内に存在するデータベースの一覧を簡単に確認できます。> show dbs admin config local myDatabase sampleDatabase students test testDBJavaアプリケーションからMongoDBに接続し、すべてのデータベース名を取得したい場合は、listDatabaseNames() メソッドを使用します。このメソッドは MongoIterable<String> 型のオブジェクトを返すため、拡張for文を使って各データベース名を1つずつ取り