MongoDBでデータベース一覧を表示する方法【show dbsの仕様と注意点】
MongoDBでデータベース一覧を表示するには
MongoDBでデータベースの一覧を表示するには、show dbs コマンドを使用します。ただし、ここで重要な注意点があります。それは、データベースに最低1件のドキュメントが存在しないと、一覧に表示されないという点です。
例えば、use コマンドで新しいデータベースを作成したものの、そこに何もドキュメントを追加していない場合、そのデータベースは show dbs の実行結果には表示されません。これはMongoDBの仕様上の動作であり、多くの初心者がつまずくポイントでもあります。
データベースを作成しても表示されないケース
まず、以下のコマンドで「app」というデータベースを作成してみましょう。
> use app; switched to db app
続いて、すべてのデータベースを表示するコマンドを実行します。
> show dbs;
この結果が以下の出力です。まだ「app」データベースにドキュメントを追加していないため、一覧には表示されていません。
admin 0.002GB business 0.000GB config 0.000GB local 0.000GB main 0.000GB my 0.001GB sample 0.003GB sampleDemo 0.000GB studentSearch 0.000GB test 0.022GB university 0.000GB web 0.001GB webcustomertracker 0.000GB
ドキュメントを挿入してデータベースを表示させる
それでは、「app」データベース内にコレクションとドキュメントを作成してみましょう。以下のように insert() メソッドを使ってドキュメントを追加します。
> db.demo.insert({"StudentName":"Chris"});
WriteResult({ "nInserted" : 1 })
find() メソッドを使うことで、コレクション内のドキュメントを確認できます。
> db.demo.find();
実行すると、次のような出力が得られます。
{ "_id" : ObjectId("5e07250e25ddae1f53b62204"), "StudentName" : "Chris" }
再度データベース一覧を確認する
もう一度、すべてのデータベースを表示するコマンドを実行してみます。
> show dbs;
今度は出力結果に「app」データベースが含まれているのがわかります。ドキュメントを1件追加したことで、データベースとして認識され、一覧に表示されるようになったのです。
admin 0.002GB app 0.000GB business 0.000GB config 0.000GB local 0.000GB main 0.000GB my 0.001GB sample 0.003GB sampleDemo 0.000GB studentSearch 0.000GB test 0.022GB university 0.000GB web 0.001GB webcustomertracker 0.000GB
まとめ
MongoDBでは、use コマンドでデータベースを作成・切り替えただけでは実体は作られず、実際にドキュメントを挿入して初めてディスク上にデータが保存されます。そのため、show dbs の一覧に自分の作成したデータベースが表示されない場合は、「ドキュメントの挿入忘れ」がないかをまず確認しましょう。これはMongoDBの遅延生成(レイジー生成)という仕組みによるもので、仕様を理解していれば戸惑うことなく対処できます。
-
MongoDBでundefinedと正確なドキュメントレコードを表示する方法
MongoDBのシェルでコレクション内のドキュメントを扱う際、forEach()メソッドを使うと、各ドキュメントに対して柔軟に処理を行えます。この記事では、forEach()のコールバック関数における引数の挙動を確認し、printjson()を使ってundefinedと実際のドキュメントレコードをそれぞれ表示する方法を解説します。サンプルコレクションの作成まず、insertOne()メソッドを使って、ドキュメントを含むコレクションを作成します。> db.demo496.insertOne({Name:David,CountryName:US});{ acknowledged : t
-
MongoDBデータベースを削除(クリア)する方法【dropDatabase()の使い方】
MongoDBでデータベース全体をクリア(削除)したい場合は、dropDatabase() メソッドを使用します。この記事では、実際のコマンド例とともに、データベースを削除する手順をわかりやすく解説します。dropDatabase() の基本構文データベースを削除するには、まず対象のデータベースに切り替えてから db.dropDatabase() を実行します。基本構文は以下の通りです。use yourDatabaseName; db.dropDatabase();注意: dropDatabase() を実行すると、そのデータベース内のコレクションやドキュメントはすべて完全に削除されます。この