章イントロダクション
この章では、MongoDBのJSONドキュメントでサポートされている配列フィールドのマッチング演算子について紹介します。
MongoDBでサポートされている配列クエリ演算子
演算子 | 説明 |
---|---|
$all | クエリ条件で配列値全体が一致する |
$elemMatch | 配列フィールドの場合、$elemMatchによって設定されたすべての条件に一致する値があれば条件が満たされる |
$size | 配列のサイズが一致する |
$all
{ tags: { $all: [ "ssl" , "security" ] } }
と同等
{ $and: [ { tags: "ssl" }, { tags: "security" } ] }
tags
フィールドは配列値であり、tags
配列が同時に値ssl
とsecurity
を含む。
$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と等しい場合、ドキュメントは成功裏にマッチします。