Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 여러 조건을 설정해 특정 범위의 값 조회하기

MongoDB에서 범위 조건으로 문서 조회하기

MongoDB에서는 $gt(초과)와 $lt(미만) 같은 비교 연산자를 함께 사용하면 하나의 쿼리로 여러 조건을 설정할 수 있습니다. 이를 활용하면 특정 범위에 속하는 값만 손쉽게 조회할 수 있습니다.

먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.

> db.demo59.insertOne({"Values":50});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e286286cfb11e5c34d89923")
}
> db.demo59.insertOne({"Values":10});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e286288cfb11e5c34d89924")
}
> db.demo59.insertOne({"Values":58});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e28628ccfb11e5c34d89925")
}
> db.demo59.insertOne({"Values":78});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e28628fcfb11e5c34d89926")
}

find() 메서드로 전체 문서 확인하기

find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 확인할 수 있습니다.

> db.demo59.find();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{ "_id" : ObjectId("5e286286cfb11e5c34d89923"), "Values" : 50 }
{ "_id" : ObjectId("5e286288cfb11e5c34d89924"), "Values" : 10 }
{ "_id" : ObjectId("5e28628ccfb11e5c34d89925"), "Values" : 58 }
{ "_id" : ObjectId("5e28628fcfb11e5c34d89926"), "Values" : 78 }

범위 조건을 적용한 쿼리 실행하기

이제 특정 범위 내의 값을 조회하는 쿼리를 살펴보겠습니다. 아래 예제에서는 Values 필드가 51보다 크고($gt) 70보다 작은($lt) 문서만 검색합니다.

> db.demo59.find({Values:{$gt:51, $lt:70}});

실행 결과는 다음과 같습니다.

{ "_id" : ObjectId("5e28628ccfb11e5c34d89925"), "Values" : 58 }

전체 4개의 문서 중 Values 값이 50, 10, 78인 문서는 조건에 해당하지 않아 제외되고, 51 초과 70 미만 범위에 있는 값 58을 가진 문서만 반환된 것을 확인할 수 있습니다.

참고: 자주 사용하는 비교 연산자

  • $gt: 지정한 값보다 큰 경우 (greater than)
  • $gte: 지정한 값보다 크거나 같은 경우 (greater than or equal)
  • $lt: 지정한 값보다 작은 경우 (less than)
  • $lte: 지정한 값보다 작거나 같은 경우 (less than or equal)

이처럼 MongoDB의 비교 연산자를 조합하면 복잡한 범위 조건도 간단하게 처리할 수 있습니다.