章イントロダクション

この章では、MongoDBのJSONドキュメントでサポートされている配列フィールドのマッチング演算子について紹介します。

MongoDBでサポートされている配列クエリ演算子

演算子 説明
$all クエリ条件で配列値全体が一致する
$elemMatch 配列フィールドの場合、$elemMatchによって設定されたすべての条件に一致する値があれば条件が満たされる
$size 配列のサイズが一致する

$all

{ tags: { $all: [ "ssl" , "security" ] } }

と同等

{ $and: [ { tags: "ssl" }, { tags: "security" } ] }

tagsフィールドは配列値であり、tags配列が同時に値sslsecurityを含む。

$elemMatch

テストデータ

scoresコレクションのデータは次のようになります:

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }

例:

db.scores.find(
   { results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)

返されたデータ:

{ "_id" : 1, "results" : [ 82, 85, 88 ] }

説明:

  • results配列内の値が80以上かつ85未満であれば、ドキュメントは成功裏にマッチします。

$size

配列のサイズが一致する

db.collection.find( { field: { $size: 2 } } );

説明:

  • fieldフィールドは配列値であり、配列のサイズが2と等しい場合、ドキュメントは成功裏にマッチします。