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

MongoDB find()에서 $or 연산자로 복수 조건 검색하기

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 절과 동일한 역할을 수행합니다.