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

MongoDB에서 _id를 사용해 컬렉션의 특정 문서 조회하기

MongoDB에서 _id 값을 기준으로 컬렉션에서 특정 문서를 조회하려면 find() 메서드와 함께 $in 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 그 방법을 단계별로 살펴보겠습니다.

1. 샘플 컬렉션 생성

먼저 insertOne() 메서드를 사용해 문서가 담긴 컬렉션을 생성합니다.

> db.demo281.insertOne({"Name":"Chris","Age":21});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e4aac28dd099650a5401a66")
}
> db.demo281.insertOne({"Name":"Bob","Age":23});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e4aac46dd099650a5401a67")
}
> db.demo281.insertOne({"Name":"David","Age":28});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e4aac4fdd099650a5401a68")
}

2. 전체 문서 확인하기

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

> db.demo281.find();

위 쿼리는 다음과 같은 결과를 출력합니다.

{ "_id" : ObjectId("5e4aac28dd099650a5401a66"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e4aac46dd099650a5401a67"), "Name" : "Bob", "Age" : 23 }
{ "_id" : ObjectId("5e4aac4fdd099650a5401a68"), "Name" : "David", "Age" : 28 }

3. $in 연산자로 특정 _id의 문서 조회하기

여러 개의 _id 값에 해당하는 문서만 조회하려면 아래와 같이 $in 연산자 안에 원하는 ObjectId 목록을 배열 형태로 지정합니다.

> db.demo281.find({_id:{$in:[ObjectId("5e4aac28dd099650a5401a66"),ObjectId("5e4aac46dd099650a5401a67")]});

실행 결과는 다음과 같습니다. 지정한 두 개의 _id에 해당하는 문서만 반환된 것을 확인할 수 있습니다.

{ "_id" : ObjectId("5e4aac28dd099650a5401a66"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e4aac46dd099650a5401a67"), "Name" : "Bob", "Age" : 23 }

정리

$in 연산자는 배열로 전달된 값 중 하나라도 일치하는 문서를 모두 반환합니다. 따라서 여러 개의 _id로 한 번에 문서를 조회할 때 매우 유용하며, 단일 문서 조회 시에는 findOne({_id: ObjectId(...)})을 사용하는 것도 좋은 방법입니다.