14. MongoDB Query Part 4. - $size

이번 포스팅에서는 find query의 $size key를 이용한 검색에 대하여 알아보도록 하겠습니다.

$size는 array의 크기를 이용하여 검색할 수 있는 오퍼레이터입니다.

우선 다음과 같이 아이템을 준비하도록 하겠습니다:

> db.food.drop()

> db.food.insert({"_id" : 1, "fruit" : ["apple", "banana", "peach"]})
> db.food.insert({"_id" : 2, "fruit" : ["apple", "kumquat", "orange"]})
> db.food.insert({"_id" : 3, "fruit" : ["cherry", "banana", "apple"]})
> db.food.insert({"_id" : 4, "fruit" : ["pineapple", "plum"]})

ID 1, 2, 3에 대해서는 "fruit"의 array 사이즈가 모두 3입니다 (즉 array의 아이템이 3개이다).

이에 반해서 ID 4는 "fruit"에 대한 array의 사이즈가 2입니다.

다음과 같이 입력해 보겠습니다:

> db.food.find({"fruit" : {"$size" : 2}})
{ "_id" : 4, "fruit" : [  "pineapple",  "plum" ] }

"fruit"의 array 크기가 2인 것을 검색했으므로 ID 4만이 검색되었습니다.

만약 array 크기가 3 이상의 도큐먼트를 검색하려면 다음을 이용합니다:

> db.food.find({"size" : {"$gt" : 3}})