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

MongoDB에서 $or 연산자를 사용하는 방법

MongoDB $or 연산자란?

MongoDB의 $or 연산자는 배열 안에 지정된 여러 표현식 중 하나라도 참(true)이면 해당 문서를 반환하는 논리 연산자입니다. 예를 들어, 특정 필드가 값 A 또는 값 B와 일치하는 문서를 한 번의 쿼리로 조회할 수 있습니다.

$or 연산자 기본 문법

$or 연산자의 기본적인 사용 문법은 다음과 같습니다.

db.yourCollectionName.find({ $or: [{ "yourFieldName": yourValue1 }, { "yourFieldName": yourValue2 }] }).pretty();

예제용 컬렉션 생성하기

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

> db.orOperatorDemo.insertOne({"StudentNames":["John","Carol","Sam"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd6b80a6d78f205348bc61b")
}
> db.orOperatorDemo.insertOne({"StudentNames":["Robert","Chris","David"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd6b8266d78f205348bc61c")
}
> db.orOperatorDemo.insertOne({"StudentNames":["John"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd6b8346d78f205348bc61d")
}

find() 메서드로 전체 문서 조회하기

삽입된 모든 문서를 확인하려면 find() 메서드를 사용합니다.

> db.orOperatorDemo.find().pretty();

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

{
   "_id" : ObjectId("5cd6b80a6d78f205348bc61b"),
   "StudentNames" : [
      "John",
      "Carol",
      "Sam"
   ]
}
{
   "_id" : ObjectId("5cd6b8266d78f205348bc61c"),
   "StudentNames" : [
      "Robert",
      "Chris",
      "David"
   ]
}
{
   "_id" : ObjectId("5cd6b8346d78f205348bc61d"),
   "StudentNames" : [
      "John"
   ]
}

$or 연산자로 조건부 쿼리 실행하기

이제 $or 연산자를 활용하여 StudentNames 필드가 "Carol" 또는 "John"을 포함하는 문서만 조회해 보겠습니다.

> db.orOperatorDemo.find({ $or: [{ "StudentNames": "Carol" }, { "StudentNames": "John"}] }).pretty();

위 쿼리의 실행 결과는 다음과 같습니다.

{
   "_id" : ObjectId("5cd6b80a6d78f205348bc61b"),
   "StudentNames" : [
      "John",
      "Carol",
      "Sam"
   ]
}
{
   "_id" : ObjectId("5cd6b8346d78f205348bc61d"),
   "StudentNames" : [
      "John"
   ]
}

결과 분석

실행 결과를 보면 두 개의 문서만 반환되었습니다. 그 이유는 다음과 같습니다.

  • 첫 번째 문서에는 "John"과 "Carol"이 모두 포함되어 있어 조건을 충족합니다.
  • 두 번째 문서(Robert, Chris, David)는 두 조건 중 어느 것도 일치하지 않으므로 제외됩니다.
  • 세 번째 문서에는 "John"이 포함되어 있어 조건을 충족합니다.

이처럼 $or 연산자를 사용하면 여러 조건 중 하나라도 만족하는 문서를 손쉽게 조회할 수 있으며, 실무에서 복잡한 검색 조건을 처리할 때 매우 유용하게 활용됩니다.