【MongoDB】JavaScriptでシェルのコレクション名を変数に設定する方法
MongoDBシェルでコレクション名を変数として扱えるのか?
はい、JavaScriptを活用すれば、MongoDBシェルでもコレクション名を変数に設定することが可能です。まずは、ドキュメントを含むコレクションを作成するところから始めましょう。
> db.employeeInformation.insertOne({"EmployeeName":"John Smith","EmployeeAge":24,"EmployeeSalary":450000});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cc6d06baf8e7a4ca6b2ad97")
}続いて、find()メソッドを使ってコレクション内のすべてのドキュメントを表示してみます。
> db.employeeInformation.find();
このクエリを実行すると、以下のような出力が得られます。
{ "_id" : ObjectId("5cc6d06baf8e7a4ca6b2ad97"), "EmployeeName" : "John Smith", "EmployeeAge" : 24, "EmployeeSalary" : 450000 }JavaScriptでコレクション名を変数に設定する方法
それでは、実際にJavaScriptを使ってMongoDBシェル上でコレクション名を変数に代入するクエリを見ていきましょう。
ケース1:varキーワードで変数を設定する
クエリは以下の通りです。
> var status=db.employeeInformation; > status.find();
実行すると、先ほどと同じ結果が得られます。
{ "_id" : ObjectId("5cc6d06baf8e7a4ca6b2ad97"), "EmployeeName" : "John Smith", "EmployeeAge" : 24, "EmployeeSalary" : 450000 }ケース2:別の変数名でコレクションを割り当てる
varキーワードを使えば、別の変数にも同じようにコレクション名を割り当てられます。クエリは以下の通りです。
> var employeeDetails=db.employeeInformation; > employeeDetails.find().pretty();
pretty()メソッドを組み合わせると、整形された読みやすい形式で出力されます。
{
"_id" : ObjectId("5cc6d06baf8e7a4ca6b2ad97"),
"EmployeeName" : "John Smith",
"EmployeeAge" : 24,
"EmployeeSalary" : 450000
}動作のポイント
db.employeeInformation のように記述すると、MongoDBシェルは該当するコレクションオブジェクトを返します。このオブジェクトを var で宣言した変数に代入しておけば、以降は短い変数名で何度でもコレクションへアクセスできるため、長いコレクション名を繰り返し入力する手間が省けます。特に長い名前のコレクションを頻繁に操作する場合や、対話的にクエリを試す際に非常に便利なテクニックです。また、find() の結果を整形して表示したい場合は、pretty() メソッドを組み合わせると可読性が大きく向上します。
-
MongoDBでサブコレクション(ネストされたドキュメント)を更新する方法
MongoDBでは、ネストされたドキュメント(サブコレクション)の配列に要素を追加したい場合、update()メソッドと$push演算子を組み合わせて使用します。ドット記法(dot notation)を使うことで、サブドキュメント内の特定のフィールドに直接アクセスし、値を追加することができます。ドキュメントを含むコレクションを作成するまず、サンプルとなるコレクションにドキュメントを挿入してみましょう。> db.demo547.insertOne( ... { ... Name : Chris, ... Test : ... { ... FirstTest :
-
MongoDBシェルで特定の値を持つドキュメントを取得する方法をわかりやすく解説
MongoDBシェルを使って特定の値を持つアイテムを取得する方法MongoDBで特定の値を持つドキュメントを取得したい場合、find()メソッドを使用するのが基本です。この記事では、サンプルコレクションを作成し、実際にfind()メソッドを使って条件に合うデータを抽出する手順を詳しく解説します。1. サンプルコレクションの作成まずはinsertOne()メソッドを使って、テスト用のコレクション「demo563」に複数のドキュメントを挿入します。> db.demo563.insertOne({Name:Chris,Age:21,isMarried:true}){ acknowled