Mongodb: 날짜 범위로 쿼리하는 방법
다음 기본 구문을 사용하여 MongoDB에서 날짜 범위를 쿼리할 수 있습니다.
db.collection.find({ day: { $gt : ISODate(" 2020-01-21 "), $lt : ISODate(" 2020-01-24 ") } })
이 특정 쿼리는 “날짜” 필드가 2020-01-21보다 크고 2020-01-24보다 작은 컬렉션의 모든 문서를 반환합니다.
$gt 는 “보다 큼”을 나타내고 $lt는 “보다 작음”을 나타냅니다.
“크거나 같음”에는 $gte를 , “작거나 같음”에는 $lte를 사용할 수도 있습니다.
다음 예에서는 다음 문서를 사용하여 컬렉션 판매 에 실제로 이 구문을 사용하는 방법을 보여줍니다.
db.sales.insertOne({day: new Date(" 2020-01-20 "), amount: 40 }) db.sales.insertOne({day: new Date(" 2020-01-21 "), amount: 32 }) db.sales.insertOne({day: new Date(" 2020-01-22 "), amount: 19 }) db.sales.insertOne({day: new Date(" 2020-01-23 "), amount: 29 }) db.sales.insertOne({day: new Date(" 2020-01-24 "), amount: 35 })
예 1: 두 날짜 사이의 문서 검색
다음 코드를 사용하여 “day” 필드가 두 특정 날짜 사이에 있는 모든 문서를 찾을 수 있습니다.
db.sales.find({ day: { $gt : ISODate(" 2020-01-21 "), $lt : ISODate(" 2020-01-24 ") } })
이 쿼리는 다음 두 문서를 반환합니다.
{ _id: ObjectId("618548bc7529c93ea0b41490"), day: 2020-01-22T00:00:00.000Z, amount: 19 } { _id: ObjectId("618548bc7529c93ea0b41491"), day: 2020-01-23T00:00:00.000Z, amount: 29 }
예시 2: 특정 날짜 이후의 문서 검색
다음 코드를 사용하여 “일” 필드가 특정 날짜 이후인 모든 문서를 찾을 수 있습니다.
db.sales.find({ day: { $gt : ISODate(" 2020-01-22 ") } })
이 쿼리는 다음 두 문서를 반환합니다.
{ _id: ObjectId("618548bc7529c93ea0b41491"), day: 2020-01-23T00:00:00.000Z, amount: 29 } { _id: ObjectId("618548bc7529c93ea0b41492"), day: 2020-01-24T00:00:00.000Z, amount: 35 }
예시 3: 특정 날짜 이전의 문서 검색
다음 코드를 사용하여 “day” 필드가 특정 날짜 이전인 모든 문서를 찾을 수 있습니다.
db.sales.find({ day: { $lt : ISODate(" 2020-01-22 ") } })
이 쿼리는 다음 두 문서를 반환합니다.
{ _id: ObjectId("618548bc7529c93ea0b4148e"), day: 2020-01-20T00:00:00.000Z, amount: 40 } { _id: ObjectId("618548bc7529c93ea0b4148f"), day: 2020-01-21T00:00:00.000Z, amount: 32 }
참고 : ISODate() 함수에 대한 전체 문서는 여기에서 찾을 수 있습니다.
추가 리소스
다음 튜토리얼에서는 MongoDB에서 다른 일반적인 쿼리를 수행하는 방법을 설명합니다.
MongoDB: “Like” 정규식을 사용하여 쿼리하는 방법
MongoDB: 필드에 문자열이 포함되어 있는지 확인하는 방법