MongoDB에서 날짜 값을 기준으로 크거나 작은 값으로 쿼리문을 작성하는 방법을 알아봅니다.


# MongoDB 날짜 값 비교하는 쿼리문 작성
만약 특정 날짜 보다 큰 데이터만 불러오거나 반대로 특정 날짜보다 작은 데이터만 가져와야 할 경우가 있겠죠. 이 경우에는 NoSQL MongoDB에서는 아래와 같은 키워드를 사용하여 쿼리문을 작성할 수 있습니다.

$gte // 크거나 같은 값만 포함, 이상
$gt // 큰 값만 포함, 초과
$lte // 작거나 같은 값만 포함, 이하
$lt // 작은 값만 포함, 미만

위 방법은 날짜 포맷에 적용하여 사용할 수 있으며 동시에 숫자값을 비교하는데에도 역시 동작합니다. 그럼 아래에서 간단한 예제를 만들어 봅니다.


! MongoDB 날짜 비교하여 검색하는 예제보기
아래는 간단한 예제입니다.
만약 컬럼 'created'에서 변수 start_time보다 크거나 같고 end_time보다 작은 날짜에 해당하는 데이터만 얻으려고 하는 경우의 쿼리문을 구하고자 합니다. 이때 날짜 값은 timestamp 값을 가지고 있습니다.

- start_time : 1592846817366
- end_time : 1599741624230

검색 쿼리를 변수 find_query로 따로 지정하는 경우 아래와 같이 입력할 수 있습니다.
find_query = { 'created': { '$gte' : start_time, '$lt' : end_time }}

result = mongo.db[dbCollection].find(find_query)

실행하면 result 변수에 저장된 모든 커서 객체들은 created 컬럼의 값을 비교하여 start_time과 end_time 사이의 값만 가진 리스트만 남아 있게 될 것입니다.