MongoDB $lt 연산자 소개
MongoDB에서 특정 값보다 작은 조건을 만족하는 문서를 조회하려면 $lt(less than) 비교 연산자를 사용하면 됩니다. 이 연산자는 find() 메서드와 함께 사용되어 필드 값이 지정한 기준값 미만인 문서만 필터링해 줍니다.
아래 예제를 통해 실제 동작 과정을 단계별로 살펴보겠습니다.
1. 컬렉션 생성 및 문서 삽입
먼저 insertOne() 메서드를 사용하여 Price 필드를 가진 문서들을 demo728 컬렉션에 삽입합니다.
> db.demo728.insertOne({Price:75});
{
"acknowledged" : true,
"insertedId" : ObjectId("5eab413c43417811278f589b")
}
> db.demo728.insertOne({Price:59});
{
"acknowledged" : true,
"insertedId" : ObjectId("5eab414043417811278f589c")
}
> db.demo728.insertOne({Price:79});
{
"acknowledged" : true,
"insertedId" : ObjectId("5eab414543417811278f589d")
}
> db.demo728.insertOne({Price:89});
{
"acknowledged" : true,
"insertedId" : ObjectId("5eab414843417811278f589e")
}총 네 개의 문서가 정상적으로 삽입되었으며, 각각의 고유 ObjectId가 자동으로 생성된 것을 확인할 수 있습니다.
2. 전체 문서 확인
find() 메서드에 조건 없이 호출하면 컬렉션의 모든 문서를 조회할 수 있습니다.
> db.demo728.find();
실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5eab413c43417811278f589b"), "Price" : 75 }
{ "_id" : ObjectId("5eab414043417811278f589c"), "Price" : 59 }
{ "_id" : ObjectId("5eab414543417811278f589d"), "Price" : 79 }
{ "_id" : ObjectId("5eab414843417811278f589e"), "Price" : 89 }Price 값이 각각 75, 59, 79, 89인 네 개의 문서가 출력됩니다.
3. $lt 연산자로 조건부 조회
이제 Price가 80보다 작은 문서만 조회하는 쿼리를 실행해 보겠습니다. 쿼리 조건은 {필드명: {$lt: 기준값}} 형식으로 작성합니다.
> db.demo728.find({Price:{$lt:80}});실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5eab413c43417811278f589b"), "Price" : 75 }
{ "_id" : ObjectId("5eab414043417811278f589c"), "Price" : 59 }
{ "_id" : ObjectId("5eab414543417811278f589d"), "Price" : 79 }결과 분석 및 참고 사항
조회 결과를 보면 Price가 80 미만인 75, 59, 79 세 개의 문서만 반환되고, 80 이상인 89는 제외된 것을 확인할 수 있습니다. 즉, $lt는 '미만'(기준값 포함 안 함) 조건으로 동작합니다.
참고로 MongoDB에서 제공하는 주요 비교 연산자는 다음과 같습니다.
- $gt: 초과 (greater than)
- $gte: 이상 (greater than or equal)
- $lt: 미만 (less than)
- $lte: 이하 (less than or equal)
- $eq: 같음 (equal)
- $ne: 같지 않음 (not equal)
이처럼 $lt 연산자는 가격, 나이, 수량 등 숫자형 데이터를 범위 조건으로 검색할 때 매우 유용하게 활용됩니다.