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

MongoDB에서 배열 필드에 $in 연산자를 사용하는 방법

MongoDB의 $in 연산자는 필드 값이 지정된 배열 안의 값 중 하나라도 일치할 때 해당 문서를 반환하는 비교 연산자입니다. 일반 필드뿐만 아니라 배열(Array) 타입의 필드에도 그대로 적용할 수 있어, 배열 요소 중 하나라도 조건과 일치하면 해당 문서가 검색됩니다.

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

먼저 insertOne() 메서드를 사용해 demo520 컬렉션에 이름 목록(ListOfName)을 가진 문서들을 삽입해 보겠습니다.

> db.demo520.insertOne({"ListOfName":["John","Bob"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e899fb4b3fbf26334ef6114")
}
> db.demo520.insertOne({"ListOfName":["Chris","David"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e899fbfb3fbf26334ef6115")
}
> db.demo520.insertOne({"ListOfName":["Mike","Bob"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e899fc7b3fbf26334ef6116")
}

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

find() 메서드를 사용해 컬렉션의 모든 문서를 조회합니다.

> db.demo520.find();

실행 결과는 다음과 같습니다.

{ "_id" : ObjectId("5e899fb4b3fbf26334ef6114"), "ListOfName" : [ "John", "Bob" ] }
{ "_id" : ObjectId("5e899fbfb3fbf26334ef6115"), "ListOfName" : [ "Chris", "David" ] }
{ "_id" : ObjectId("5e899fc7b3fbf26334ef6116"), "ListOfName" : [ "Mike", "Bob" ] }

3. $in 연산자로 배열 필드 조회하기

이제 배열 필드에 $in 연산자를 적용하는 쿼리입니다. 아래 예제는 ListOfName 배열에 "Bob" 또는 "Mike"가 포함된 문서만 조회합니다.

> db.demo520.find({"ListOfName":{$in:["Bob","Mike"]}});

실행 결과는 다음과 같습니다.

{ "_id" : ObjectId("5e899fb4b3fbf26334ef6114"), "ListOfName" : [ "John", "Bob" ] }
{ "_id" : ObjectId("5e899fc7b3fbf26334ef6116"), "ListOfName" : [ "Mike", "Bob" ] }

결과를 보면 "Bob" 또는 "Mike"를 포함한 두 개의 문서만 반환되었고, 두 이름 모두 없는 "Chris", "David" 문서는 제외된 것을 확인할 수 있습니다. 이처럼 $in 연산자를 사용하면 여러 값을 한 번의 쿼리로 간편하게 조회할 수 있습니다.