MongoDBでスクリプトの実行結果を見やすく表示する方法|printjson()の使い方を解説
MongoDBでスクリプトの結果を表示するには?
MongoDBのシェルでスクリプトの実行結果を整形して出力したい場合は、printjson() 関数を使用します。find() メソッドが返すカーソルを while ループで順番に処理し、各ドキュメントを見やすい形式で表示できます。この記事では、実際にコレクションを作成し、結果を出力するまでの手順をサンプルコードとともに解説します。
1. ドキュメントを含むコレクションを作成する
まず、insertOne() メソッドを使ってサンプル用のコレクションにドキュメントを登録します。
> db.printResultScriptDemo.insertOne({"StudentName":"John","StudentAge":21});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cf22c02b64a577be5a2bc0b")
}
> db.printResultScriptDemo.insertOne({"StudentName":"Carol","StudentAge":20});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cf22c09b64a577be5a2bc0c")
}
> db.printResultScriptDemo.insertOne({"StudentName":"David","StudentAge":19});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cf22c11b64a577be5a2bc0d")
}これで「StudentName」と「StudentAge」を持つ3件のドキュメントが登録されました。
2. find()メソッドですべてのドキュメントを表示する
続いて、find() メソッドを使ってコレクション内のすべてのドキュメントを取得してみましょう。
> db.printResultScriptDemo.find();
実行すると、登録したドキュメントが1行ずつ出力されます。
{ "_id" : ObjectId("5cf22c02b64a577be5a2bc0b"), "StudentName" : "John", "StudentAge" : 21 }
{ "_id" : ObjectId("5cf22c09b64a577be5a2bc0c"), "StudentName" : "Carol", "StudentAge" : 20 }
{ "_id" : ObjectId("5cf22c11b64a577be5a2bc0d"), "StudentName" : "David", "StudentAge" : 19 }find() のデフォルト出力でも内容は確認できますが、ドキュメントが1行に圧縮されて表示されるため、フィールドが多い場合は読みにくくなります。
3. printjson()でスクリプトの結果を整形出力する
結果を見やすく表示するには、find() のカーソルを変数に格納し、hasNext() と next() を使ってループ処理を行いながら printjson() で出力します。
> var document = db.printResultScriptDemo.find();
> while (document.hasNext()) {
printjson(document.next());
}実行結果は次のようになります。各ドキュメントが整形されて表示され、非常に読みやすくなります。
{
"_id" : ObjectId("5cf22c02b64a577be5a2bc0b"),
"StudentName" : "John",
"StudentAge" : 21
}
{
"_id" : ObjectId("5cf22c09b64a577be5a2bc0c"),
"StudentName" : "Carol",
"StudentAge" : 20
}
{
"_id" : ObjectId("5cf22c11b64a577be5a2bc0d"),
"StudentName" : "David",
"StudentAge" : 19
}まとめ
MongoDBでスクリプトの結果を整形表示するには、以下の流れが基本となります。
- find() の戻り値(カーソル)を変数に代入する
- hasNext() で次のドキュメントが存在するか確認する
- next() でドキュメントを1件ずつ取り出す
- printjson() でJSON形式に整形して出力する
この方法を覚えておけば、大量のフィールドを持つドキュメントでも可読性の高い形で結果を確認でき、デバッグやデータ検証の作業効率が大きく向上します。また、forEach() を使った「db.collection.find().forEach(printjson)」という記述でも同様の結果が得られるので、用途に応じて使い分けると便利です。
-
MongoDBでコレクションを削除(ドロップ)する方法をわかりやすく解説
MongoDBでコレクションを削除(ドロップ)するには、drop()メソッドを使用します。基本的な構文は以下のとおりです。db.yourCollectionName.drop();この構文を実行すると、コレクションの削除が成功した場合は true、失敗した場合(コレクションが存在しないときなど)は false が返されます。事前準備:データベースとコレクションの一覧を確認するまず、MongoDB内にどのようなコレクションがあるのかを確認してみましょう。ここでは、複数のコレクションを含む「sample」というデータベースを例に説明します。最初に、以下のコマンドで「sample」データベースへ切り
-
MongoDBでコンソールをクリアする2つの方法|ショートカット「Ctrl + L」とコマンド「cls」の使い方
MongoDBのシェル(mongo / mongosh)を使っていると、実行したクエリや結果がどんどん積み重なり、画面が見づらくなることがあります。そんなときに便利なのがコンソールのクリア機能です。MongoDBでは、以下の2つの方法でコンソールをクリアできます。 方法1:キーボードショートカット「Ctrl + L」を使う 最も手軽なのが、キーボードショートカットを使う方法です。次のキーを押すだけで、即座にコンソールをクリアできます。 Ctrl + L このキーを押すと、それまで表示されていたログや実行結果がすべて消え、まっさらな状態になります。Linuxのターミナルなどと同じ操作感なので、