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

MongoDB $or 연산자로 여러 조건의 값 조회하기

MongoDB에서 $or 연산자로 여러 값 선택하는 방법

MongoDB에서는 $or 연산자를 사용하면 여러 조건 중 하나라도 만족하는 문서를 손쉽게 조회할 수 있습니다. 이번 글에서는 실제 예제를 통해 $or 연산자의 사용법을 단계별로 살펴보겠습니다.

1. 컬렉션 생성 및 문서 삽입

먼저 insertOne() 메서드를 사용해 컬렉션을 생성하고 문서들을 삽입합니다.

> db.demo270.insertOne({"ClientName":"Chirs","Age":34});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e481e371627c0c63e7dbab8")
}
> db.demo270.insertOne({"ClientName":"David","Age":31});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e481e3d1627c0c63e7dbab9")
}
> db.demo270.insertOne({"ClientName":"Bob","Age":31});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e481e431627c0c63e7dbaba")
}
> db.demo270.insertOne({"ClientName":"Carol","Age":36});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e481e491627c0c63e7dbabb")
}

2. 전체 문서 확인하기

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

> db.demo270.find();

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

{ "_id" : ObjectId("5e481e371627c0c63e7dbab8"), "ClientName" : "Chirs", "Age" : 34 }
{ "_id" : ObjectId("5e481e3d1627c0c63e7dbab9"), "ClientName" : "David", "Age" : 31 }
{ "_id" : ObjectId("5e481e431627c0c63e7dbaba"), "ClientName" : "Bob", "Age" : 31 }
{ "_id" : ObjectId("5e481e491627c0c63e7dbabb"), "ClientName" : "Carol", "Age" : 36 }

3. $or 연산자로 여러 조건 조회하기

이제 $or 연산자를 활용해 'ClientName이 Carol이거나 Age가 31인' 문서를 조회하는 쿼리를 작성해 보겠습니다.

> db.demo270.find({
...    "$or" : [
...       {
...          "ClientName" : "Carol"
...       },
...       {
...          "Age" : 31
...       }
...    ]
... }
...);

$or 연산자는 배열 형태로 여러 조건을 받으며, 이 중 하나라도 참인 문서를 모두 반환합니다. 위 쿼리의 실행 결과는 다음과 같습니다.

{ "_id" : ObjectId("5e481e3d1627c0c63e7dbab9"), "ClientName" : "David", "Age" : 31 }
{ "_id" : ObjectId("5e481e431627c0c63e7dbaba"), "ClientName" : "Bob", "Age" : 31 }
{ "_id" : ObjectId("5e481e491627c0c63e7dbabb"), "ClientName" : "Carol", "Age" : 36 }

정리

실행 결과를 보면 Age가 31인 David과 Bob, 그리고 ClientName이 Carol인 문서가 함께 조회된 것을 확인할 수 있습니다. 이처럼 MongoDB의 $or 연산자를 사용하면 서로 다른 필드에 대한 조건을 논리합(OR)으로 결합하여 유연하게 데이터를 검색할 수 있습니다.