MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

【MongoDB入門】varキーワードを使ってユーザー定義変数をクエリに設定する方法

MongoDBでは、varキーワードを使用することで、ユーザー定義変数を宣言し、クエリの中で利用することができます。変数を活用することで、条件値を動的に指定でき、クエリの再利用性が高まります。

コレクションの作成とドキュメントの挿入

まずはサンプルとして、コレクションを作成し、ドキュメントを挿入していきましょう。ここではinsertOne()メソッドを使って4件のドキュメントを登録します。

> db.demo327.insertOne({"FirstName":"Chris","LastName":"Brown"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e516952f8647eb59e562076")
}
> db.demo327.insertOne({"FirstName":"David","LastName":"Miller"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e51695af8647eb59e562077")
}
> db.demo327.insertOne({"FirstName":"John","LastName":"Doe"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e516962f8647eb59e562078")
}
> db.demo327.insertOne({"FirstName":"John","LastName":"Smith"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e516968f8647eb59e562079")
}

find()メソッドですべてのドキュメントを表示する

次に、find()メソッドを使って、コレクション内のすべてのドキュメントを表示します。

> db.demo327.find();

上記のコマンドを実行すると、以下のような出力が得られます。

{ "_id" : ObjectId("5e516952f8647eb59e562076"), "FirstName" : "Chris", "LastName" : "Brown" }
{ "_id" : ObjectId("5e51695af8647eb59e562077"), "FirstName" : "David", "LastName" : "Miller" }
{ "_id" : ObjectId("5e516962f8647eb59e562078"), "FirstName" : "John", "LastName" : "Doe" }
{ "_id" : ObjectId("5e516968f8647eb59e562079"), "FirstName" : "John", "LastName" : "Smith" }

ユーザー定義変数をクエリに設定する

それが本題の部分です。varキーワードで変数を宣言し、その変数をfind()メソッドの検索条件として渡します。以下の例では、変数nameに「John」という値を設定し、FirstNameフィールドが「John」であるドキュメントを検索しています。

> var name="John";
> db.demo327.find({"FirstName":name});

このクエリを実行すると、次のような結果が出力されます。

{ "_id" : ObjectId("5e516962f8647eb59e562078"), "FirstName" : "John", "LastName" : "Doe" }
{ "_id" : ObjectId("5e516968f8647eb59e562079"), "FirstName" : "John", "LastName" : "Smith" }

まとめ

このように、MongoDBシェルではvarキーワードを使ってユーザー定義変数を簡単に宣言できます。変数に格納した値をクエリ条件として使用することで、同じクエリ構造のまま異なる条件で検索できるため、インタラクティブな操作やスクリプト作成の際に非常に便利です。FirstNameだけでなく、数値や日付など任意の型の値にも応用できます。

  1. MySQLクエリで列にユーザー定義の値を追加する方法

    MySQLでは、UNION ALLを活用することで、既存の列の値に加えて、ユーザーが自由に定義した値をクエリ結果に追加できます。ここでは、ENUM型の列を持つテーブルを例に、その具体的な手順を解説します。 1. サンプルテーブルの作成 まず、ENUM型のカラムを持つテーブルを作成します。 mysql> create table DemoTable1847      (      GameStatus ENUM(PENDING,COMPLETED,CANCELLED)      ); Query OK

  2. C++のset(集合)にユーザー定義型を指定する方法

    set(セット)は値を格納するためのデータ構造です。setの最大の特徴は、要素が互いに重複しないこと(同じ値を持つ要素が複数存在しないこと)、そして値が自動的に昇順でソートされて保持される点にあります。C++では、setに格納するデータ型を明示的に定義することが可能で、intやstringといった組み込み型だけでなく、ユーザー定義型(構造体やクラス)を指定することもできます。 データを重複なく、かつソートされた状態で保持したい場合にsetは非常に便利です。たとえば次のような動作になります。 Input : 124689781230 Output : 012346789 ロジック setへの入