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)으로 결합하여 유연하게 데이터를 검색할 수 있습니다.