章イントロダクション
この章では、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と等しい場合、ドキュメントは成功裏にマッチします。