챕터 소개
이번 장에서는 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와 동일하면 문서가 성공적으로 매칭됩니다.