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

MongoDB에서 모든 문서의 ID를 가져오는 방법

MongoDB에서 모든 문서 ID 조회하기

MongoDB에서 컬렉션에 저장된 모든 문서의 ID(_id)를 가져오려면 find() 메서드를 활용하면 됩니다. 이번 글에서는 예제 컬렉션을 만들고, 전체 ID만 추출하는 과정을 단계별로 살펴보겠습니다.

1. 샘플 컬렉션 생성

먼저 insertOne() 메서드를 사용해 demo169라는 컬렉션에 문서를 세 개 삽입합니다.

> db.demo169.insertOne({"StudentName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e36975e9e4f06af551997d7")
}
> db.demo169.insertOne({"StudentName":"Bob"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3697629e4f06af551997d8")
}
> db.demo169.insertOne({"StudentName":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3697679e4f06af551997d9")
}

각 문서가 정상적으로 삽입되면 MongoDB가 자동으로 고유한 ObjectId를 생성하여 반환합니다.

2. 전체 문서 확인하기

find() 메서드로 컬렉션의 모든 문서를 출력해 보겠습니다.

> db.demo169.find();

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

{ "_id" : ObjectId("5e36975e9e4f06af551997d7"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5e3697629e4f06af551997d8"), "StudentName" : "Bob" }
{ "_id" : ObjectId("5e3697679e4f06af551997d9"), "StudentName" : "David" }

3. 문서 ID만 추출하는 쿼리

이제 컬렉션 내 모든 문서의 ID만 가져오는 쿼리입니다. 핵심은 두 번째 인자인 프로젝션(projection)에서 다른 필드를 제외(0) 처리하는 것입니다.

> var iterator=db.demo169.find({}, {"StudentName":0});

생성된 반복자(iterator)를 출력하면 결과를 확인할 수 있습니다.

> iterator;

출력 결과는 다음과 같습니다.

{ "_id" : ObjectId("5e36975e9e4f06af551997d7") }
{ "_id" : ObjectId("5e3697629e4f06af551997d8") }
{ "_id" : ObjectId("5e3697679e4f06af551997d9") }

정리 및 추가 팁

위 예제처럼 프로젝션에서 특정 필드를 0으로 지정하면 해당 필드가 결과에서 제외됩니다. 반대로 필요한 필드만 명시적으로 포함시키고 싶다면 {"_id":1}처럼 값을 1로 지정할 수도 있습니다. 참고로 _id 필드는 별도 설정이 없어도 기본적으로 항상 반환되므로, ID만 얻고 싶다면 나머지 필드를 제외하는 방식이 가장 간편합니다. 또한 최신 MongoDB 버전에서는 .toArray().map()을 활용해 ID 목록을 배열 형태로 한 번에 받아올 수도 있습니다.