챕터 소개

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