MongoDB에서 여러 조건 중 하나라도 만족하는 문서를 조회하려면 $or 연산자를 사용합니다. 이 글에서는 find() 메서드 안에 $or 연산자를 적용하는 방법을 예제와 함께 단계별로 살펴보겠습니다.
1. 컬렉션 생성 및 문서 삽입
먼저 데모용 컬렉션을 만들고 문서를 삽입합니다.
> db.demo78.insertOne({"Name1":"Chris","Name2":"Mike"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e2bd99c71bf0181ecc4228f")
}
> db.demo78.insertOne({"Name1":"Bob","Name2":"Carol"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e2bd9ac71bf0181ecc42290")
}
> db.demo78.insertOne({"Name1":"David","Name2":"Sam"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e2bd9b671bf0181ecc42291")
}
> db.demo78.insertOne({"Name1":"Jace","Name2":"John"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e2bd9bf71bf0181ecc42292")
}총 4개의 문서가 정상적으로 삽입되었습니다.
2. find()로 전체 문서 확인하기
find() 메서드를 사용해 컬렉션에 저장된 모든 문서를 출력해 보겠습니다.
> db.demo78.find();
실행하면 다음과 같은 결과가 출력됩니다.
{ "_id" : ObjectId("5e2bd99c71bf0181ecc4228f"), "Name1" : "Chris", "Name2" : "Mike" }
{ "_id" : ObjectId("5e2bd9ac71bf0181ecc42290"), "Name1" : "Bob", "Name2" : "Carol" }
{ "_id" : ObjectId("5e2bd9b671bf0181ecc42291"), "Name1" : "David", "Name2" : "Sam" }
{ "_id" : ObjectId("5e2bd9bf71bf0181ecc42292"), "Name1" : "Jace", "Name2" : "John" }3. $or 연산자를 활용한 쿼리 작성
이제 find()에서 $or 연산자를 구현해 보겠습니다. 아래 쿼리는 Name1이 "Bob"이거나 Name2가 "John"인 문서를 조회합니다.
> db.demo78.find({$or: [{"Name1": "Bob"}, {Name2: "John"}] });위 쿼리는 다음과 같은 결과를 반환합니다.
{ "_id" : ObjectId("5e2bd9ac71bf0181ecc42290"), "Name1" : "Bob", "Name2" : "Carol" }
{ "_id" : ObjectId("5e2bd9bf71bf0181ecc42292"), "Name1" : "Jace", "Name2" : "John" }결과 분석
출력 결과를 보면 두 개의 문서가 반환되었습니다. 첫 번째 문서는 Name1이 "Bob"이라는 첫 번째 조건을 만족했고, 두 번째 문서는 Name2가 "John"이라는 두 번째 조건을 만족했습니다. 이처럼 $or 연산자는 배열로 전달된 조건 중 하나라도 참인 모든 문서를 반환하며, SQL의 OR 절과 동일한 역할을 수행합니다.