Tech Sketch Bucket of Technical Chips by TIS Inc.

MongoDB Tips -- 配列データを表示する場合に便利な $ ( operator ) --

Pocket

この記事はeXcale Developer's Blogから移転されたものです。




 こんにちは、eXcale開発チームの平井です。

 今回は、MongoDBに格納された配列データを表示する場合に便利な、$ ( operator ) をご紹介します。
 


 MongoDBには、以下のようにデータとして配列を格納する事ができます。
 データ構造としては、名前と得点のフィールドを持ち、得点は配列で教科名とその得点を持つ、という形です。

※ _idフィールドは説明に不要なため、findの第2引数を使用して非表示にしています。

 このような場合に、配列内のデータで、条件を満たすデータのみを表示するにはどうしたらよいでしょうか。
 具体的には、Mathが85以上で、表示したいのは名前とMathの得点という場合です(Scienceの得点は表示しない)。
 この場合、以下のようにすることで表示することができます。

 findの1つ目の引数が検索条件で、2つ目の引数で表示するフィールドを指定しています。
 ここでのポイントは、points.$としていることです。

 $を使うことで、検索条件で使用したMathのみを表示することができます。

 $を使わない場合、条件で使用したMath以外のデータも表示されてしまいます。

 いかがでしょうか、$ ( operator ) はあまり知られていないように思うので試してみてはいかがでしょうか。

エンジニア採用中!私たちと一緒に働いてみませんか?