본문 바로가기
MongoDB/Comparison Query Operators

[MongoDB] $gt, $gte, $lt, $lte

by 드름이 2022. 6. 30.

요약: 특정 필드의 값이 지정된 값보다 큰(또는 작은) document를 모두 가져오고 싶을 때 

- $gt (큰)

- $gte (크거나 같은)

- $lt (작은)

- $lt (작거나 같은)

 


우선 아래 문서를 inventory collection에 추가했다고 가정합니다.

 

db.inventory.insertMany( [
   {
      "상품명": "사과", "수량": 30,
      "배송정보": { "업체명": "쿠팡이츠", "배송비": 3 }
   },
   {
      "상품명": "배", "수량": 50,
      "배송정보": { "업체명": "배민", "배송비": 4 }
   },
   {
      "상품명": "바나나", "수량": 10,
      "배송정보": { "업체명": "마켓컬리", "배송비": 1 }
   }
] )

1. 위의 document에서 "수량" 필드의 값이 20보다 큰 모든 문서를 선택합니다. 

 

db.inventory.find( { 수량: { $gt: 20 } } )

 

결과는 다음과 같습니다.

 

{
  _id: ...,
  상품명: '사과',
  수량: 30,
  배송정보: { 업체명: '쿠팡이츠', 배송비: 3 }
},
{
  _id: ...,
  상품명: '배',
  수량: 50,
  배송정보: { 업체명: '배민', 배송비: 4 }
}

 


2. Embeded Document(객체를 MongoDB에서는 Document로 부르는 듯)의 필드 값을 필터할 수 있습니다. 

 

 

embeded document인 배송정보의 "배송비" 필드 값이 3보다 큰 모든 문서를 선택합니다. 

 

db.inventory.find( { "배송정보.배송비": { $gt: 3 } } )

 

 

결과는 다음과 같습니다.

 

 

{
  _id: ...,
  상품명: '배',
  수량: 50,
  배송정보: { 업체명: '배민', 배송비: 4 }
}

 


 

하나를 알면 4개가 보입니다. 

 


출처: $gt — MongoDB Manual , $gte — MongoDB Manual , $lt — MongoDB Manual , $lte — MongoDB Manual

'MongoDB > Comparison Query Operators' 카테고리의 다른 글

[MongoDB] $in, $nin  (1) 2022.06.30
[MongoDB] $eq, $ne  (1) 2022.06.30