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

MongoDB 복합 조건($in 연산자)으로 문서 조회하는 방법

MongoDB에서 여러 조건을 동시에 만족하는 문서를 조회하려면 $in 연산자를 활용할 수 있습니다. $in 연산자는 특정 필드의 값이 지정한 배열 내 값들 중 하나와 일치하는 문서만 반환합니다.

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

먼저 데모용 컬렉션을 만들고 문서를 삽입해 보겠습니다.

> db.demo714.insertOne({FirstName:"Chris",LastName:"Brown"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea9a2da85324c2c98cc4c2b")
}
> db.demo714.insertOne({FirstName:"Adam",LastName:"Smith"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea9a2e585324c2c98cc4c2c")
}
> db.demo714.insertOne({FirstName:"David",LastName:"Miller"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea9a2ed85324c2c98cc4c2d")
}
> db.demo714.insertOne({FirstName:"John",LastName:"Doe"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea9a2f785324c2c98cc4c2e")
}

2. find() 메서드로 전체 문서 확인

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

> db.demo714.find();

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

{ "_id" : ObjectId("5ea9a2da85324c2c98cc4c2b"), "FirstName" : "Chris", "LastName" : "Brown" }
{ "_id" : ObjectId("5ea9a2e585324c2c98cc4c2c"), "FirstName" : "Adam", "LastName" : "Smith" }
{ "_id" : ObjectId("5ea9a2ed85324c2c98cc4c2d"), "FirstName" : "David", "LastName" : "Miller" }
{ "_id" : ObjectId("5ea9a2f785324c2c98cc4c2e"), "FirstName" : "John", "LastName" : "Doe" }

3. 복합 조건($in)을 활용한 문서 조회

이제 LastName 필드가 "Miller" 또는 "Brown"인 문서만 조회하는 복합 조건 쿼리를 작성해 보겠습니다.

> db.demo714.find({"LastName":{$in:["Miller","Brown"]}});

실행 결과, 조건에 해당하는 두 개의 문서만 반환됩니다.

{ "_id" : ObjectId("5ea9a2da85324c2c98cc4c2b"), "FirstName" : "Chris", "LastName" : "Brown" }
{ "_id" : ObjectId("5ea9a2ed85324c2c98cc4c2d"), "FirstName" : "David", "LastName" : "Miller" }

정리

$in 연산자는 배열로 전달된 여러 값 중 하나라도 일치하는 문서를 조회할 때 유용합니다. OR 조건을 여러 번 작성하는 것보다 코드가 간결하고 가독성이 뛰어나며, 인덱스가 설정된 필드에 사용하면 쿼리 성능도 효율적으로 유지할 수 있습니다.