MongoDBでクエリ結果(単一のドキュメント)を変数に保存する方法
MongoDBのシェル(mongosh / mongoシェル)では、varキーワードを使うことで、クエリ結果(単一のドキュメント)を変数に保存できます。保存した変数は後から呼び出して内容を確認したり、別の処理に再利用したりできるため、デバッグやスクリプト作成の際に非常に便利です。
基本構文
クエリ結果を変数に格納する基本的な書き方は以下の通りです。
var anyVariableName = db.yourCollectionName.find().limit(1); yourVariableName; // 変数の中身を表示
find()メソッドにlimit(1)を組み合わせることで、先頭の1件だけを取得して変数に保存しています。なお、mongoshではカーソルが自動的に反復されるため、変数名を入力するだけでドキュメントの内容が表示されます。
サンプルコレクションの作成
まずは動作確認用のコレクションを作成し、ドキュメントを挿入してみましょう。
> db.storeQueryResultDemo.insertOne({"ClientName":"Chris","ClientAge":23});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9ecf8fd628fa4220163b8d")
}
> db.storeQueryResultDemo.insertOne({"ClientName":"Robert","ClientAge":21});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9ecf97d628fa4220163b8e")
}
> db.storeQueryResultDemo.insertOne({"ClientName":"Sam","ClientAge":25});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9ecf9ed628fa4220163b8f")
}
> db.storeQueryResultDemo.insertOne({"ClientName":"Mike","ClientAge":26});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9ecfa8d628fa4220163b90")
}
登録済みドキュメントの確認
次に、find()メソッドを使ってコレクション内のすべてのドキュメントを表示します。
> db.storeQueryResultDemo.find().pretty();
実行すると、以下のような出力が得られます。
{
"_id" : ObjectId("5c9ecf8fd628fa4220163b8d"),
"ClientName" : "Chris",
"ClientAge" : 23
}
{
"_id" : ObjectId("5c9ecf97d628fa4220163b8e"),
"ClientName" : "Robert",
"ClientAge" : 21
}
{
"_id" : ObjectId("5c9ecf9ed628fa4220163b8f"),
"ClientName" : "Sam",
"ClientAge" : 25
}
{
"_id" : ObjectId("5c9ecfa8d628fa4220163b90"),
"ClientName" : "Mike",
"ClientAge" : 26
}
4件のドキュメントが正しく登録されていることが確認できました。
クエリ結果を変数に保存する
それでは本題です。varを使って、クエリ結果(単一のドキュメント)を変数に保存します。
> var queryResult = db.storeQueryResultDemo.find().limit(1);
ここでは、queryResultという変数に、コレクションの先頭1件分の検索結果を格納しています。
保存した変数の内容を表示する
変数名をそのまま入力して実行すると、保存されたドキュメントの内容を確認できます。
> queryResult;
実行結果は以下の通りです。
{ "_id" : ObjectId("5c9ecf8fd628fa4220163b8d"), "ClientName" : "Chris", "ClientAge" : 23 }
このように、最初の1件である「Chris」のドキュメントが変数に正しく保存され、いつでも参照できる状態になっています。
まとめ
- MongoDBシェルではvarを使ってクエリ結果を変数に保存できる。
find().limit(1)とすることで、単一のドキュメントを取得対象にできる。- 変数名を入力するだけで中身を表示でき、以降の処理でも再利用可能。
複雑な集計結果や条件検索の結果を扱う場合にも同じ要領で変数化できるので、ぜひ日々の開発やデータ確認作業に活用してみてください。
-
【Android開発】WebViewでPDFドキュメントを表示する方法を解説
AndroidアプリでPDFファイルを表示したい場面は多くありますが、実はAndroidの標準的なWebViewにはPDFを直接レンダリングする機能がありません。そこで本記事では、Googleドライブのビューアを経由してWebView上にPDFを表示する方法を、実際のコード例とともにステップ形式でわかりやすく解説します。 手順1:新規プロジェクトを作成する まず、Android Studioで新しいプロジェクトを作成しましょう。メニューから「File」⇒「New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。 手順2:activity_main.xml にコ
-
Word文書を別のWord文書に簡単に挿入する方法
Word文書を別のWord文書に直接挿入できることをご存知でしょうか?実は、Microsoft Wordには標準でこの機能が備わっており、難しい操作は一切必要ありません。多くの方は、挿入したい文書を開いて内容をすべて選択し、コピーして別の文書に貼り付けるという方法を使いがちですが、間違いではありません。ただし、文書が長い場合は時間と手間がかかってしまいます。 そこで本記事では、コピー&ペーストよりも効率的な「テキストをファイルから」機能を使った挿入方法を、手順を追って詳しく解説します。 Word文書を別のWord文書に挿入する手順 すでに開いている文書に別の文書を追加するのが最も簡単な方法です