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

MongoDB에서 _id 배열 조회하는 방법 완벽 가이드

MongoDB의 _id 필드란?

MongoDB에서 _id는 필수 필드입니다. 컬렉션에 저장되는 모든 도큐먼트는 기본 키(primary key) 역할을 하는 고유한 _id 필드를 반드시 가져야 합니다. 사용자가 _id 값을 직접 지정하지 않으면 MongoDB가 자동으로 ObjectId를 생성해 주지만, 위 예제처럼 숫자 등 원하는 값을 직접 설정할 수도 있습니다.

$in 연산자로 특정 _id 목록 조회하기

여러 개의 _id 값에 해당하는 도큐먼트를 한 번에 조회하려면 $in 연산자를 사용하면 됩니다. $in은 배열 안에 나열된 값 중 하나라도 일치하는 도큐먼트를 모두 반환합니다.

기본 문법은 다음과 같습니다.

db.yourCollectionName.find({ _id : { $in : [yourValue1,yourValue2,yourValue3,.......N] } } );

실습: 샘플 컬렉션 생성하기

먼저 insertOne() 메서드를 사용해 여러 개의 도큐먼트를 가진 컬렉션을 생성해 보겠습니다.

> db.selectInWhereIdDemo.insertOne({"_id":23});
{ "acknowledged" : true, "insertedId" : 23 }
> db.selectInWhereIdDemo.insertOne({"_id":28});
{ "acknowledged" : true, "insertedId" : 28 }
> db.selectInWhereIdDemo.insertOne({"_id":45});
{ "acknowledged" : true, "insertedId" : 45 }
> db.selectInWhereIdDemo.insertOne({"_id":75});
{ "acknowledged" : true, "insertedId" : 75 }
> db.selectInWhereIdDemo.insertOne({"_id":85});
{ "acknowledged" : true, "insertedId" : 85 }
> db.selectInWhereIdDemo.insertOne({"_id":145});
{ "acknowledged" : true, "insertedId" : 145 }

find() 메서드로 전체 도큐먼트 확인하기

pretty() 메서드와 함께 find()를 실행하면 컬렉션에 저장된 모든 도큐먼트를 보기 좋게 출력할 수 있습니다.

> db.selectInWhereIdDemo.find().pretty();

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

{ "_id" : 23 }
{ "_id" : 28 }
{ "_id" : 45 }
{ "_id" : 75 }
{ "_id" : 85 }
{ "_id" : 145 }

$in으로 원하는 _id만 골라서 조회하기

이제 $in 연산자를 활용해 배열에 지정한 _id 값(23, 45, 85, 145)에 해당하는 도큐먼트만 조회해 보겠습니다.

> db.selectInWhereIdDemo.find({ _id : { $in : [23,45,85,145] } } );

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

{ "_id" : 23 }
{ "_id" : 45 }
{ "_id" : 85 }
{ "_id" : 145 }

정리

이처럼 MongoDB에서는 $in 연산자와 배열을 조합하면 특정 _id 값들에 해당하는 도큐먼트를 간단하고 효율적으로 조회할 수 있습니다. 대량의 데이터에서 원하는 문서만 선별할 때 매우 유용한 방법이므로 꼭 익혀두시길 권장합니다.