MongoDB에서 _id로 문서 찾기
MongoDB에서 특정 _id 값을 기준으로 문서를 조회하려면 find() 메서드를 사용하면 됩니다. 기본 문법은 다음과 같습니다.
db.findByIdDemo.find({ "_id": yourObjectId });위 문법을 실제로 이해하기 위해 먼저 컬렉션을 생성하고 문서를 삽입해 보겠습니다.
1. 테스트 컬렉션 생성 및 데이터 삽입
insertOne() 메서드를 사용해 세 개의 문서를 순차적으로 삽입합니다.
> db.findByIdDemo.insertOne({"Value":10});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e07158925ddae1f53b621fc")
}
> db.findByIdDemo.insertOne({"Value":500});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e07158c25ddae1f53b621fd")
}
> db.findByIdDemo.insertOne({"Value":1000});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e07159125ddae1f53b621fe")
}2. 컬렉션의 전체 문서 조회
find() 메서드를 인자 없이 호출하면 컬렉션에 저장된 모든 문서를 확인할 수 있습니다.
> db.findByIdDemo.find();
실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5e07158925ddae1f53b621fc"), "Value" : 10 }
{ "_id" : ObjectId("5e07158c25ddae1f53b621fd"), "Value" : 500 }
{ "_id" : ObjectId("5e07159125ddae1f53b621fe"), "Value" : 1000 }3. 특정 _id로 문서 조회하기
이제 특정 ObjectId를 쿼리 조건으로 지정하여 해당 문서만 조회해 보겠습니다.
> db.findByIdDemo.find({ "_id" : ObjectId("5e07158c25ddae1f53b621fd") });실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5e07158c25ddae1f53b621fd"), "Value" : 500 }주의 사항
ObjectId로 문서를 조회할 때는 반드시 ObjectId() 함수로 값을 감싸야 합니다. 문자열 그대로 전달하면 타입이 일치하지 않아 아무 문서도 반환되지 않습니다. 또한 조건에 맞는 문서 중 첫 번째 하나만 필요하다면 findOne() 메서드를 사용하는 것이 더 효율적입니다.