MongoDB 셸에서 문서 값 출력하기
MongoDB 셸에서 특정 필드의 값만 출력하고 싶다면 forEach() 메서드를 활용하면 됩니다. 이 메서드는 조회된 각 문서를 순회하면서 원하는 작업을 수행할 수 있게 해주며, print() 함수와 함께 사용하면 특정 필드의 값을 깔끔하게 출력할 수 있습니다.
먼저 예제에 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.
> db.printDocuementValueDemo.insertOne({"InstructorName":"John Smith"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd6804f7924bb85b3f48950")
}
> db.printDocuementValueDemo.insertOne({"InstructorName":"Sam Williams"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd680577924bb85b3f48951")
}
> db.printDocuementValueDemo.insertOne({"InstructorName":"David Miller"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd680637924bb85b3f48952")
}find() 메서드로 전체 문서 조회하기
find() 메서드와 pretty() 함수를 함께 사용하면 컬렉션의 모든 문서를 가독성 좋은 형태로 확인할 수 있습니다.
> db.printDocuementValueDemo.find().pretty();
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
{
"_id" : ObjectId("5cd6804f7924bb85b3f48950"),
"InstructorName" : "John Smith"
}
{
"_id" : ObjectId("5cd680577924bb85b3f48951"),
"InstructorName" : "Sam Williams"
}
{
"_id" : ObjectId("5cd680637924bb85b3f48952"),
"InstructorName" : "David Miller"
}forEach()로 특정 문서의 값만 출력하기
이제 특정 문서의 필드 값만 출력해 보겠습니다. 아래 쿼리는 _id로 문서를 조회한 뒤, 프로젝션을 통해 InstructorName 필드만 선택하고, forEach()와 print()를 사용하여 해당 값만 화면에 출력합니다.
> db.printDocuementValueDemo.find(
{ _id : ObjectId("5cd680577924bb85b3f48951") },
{InstructorName: 1, _id:0}
).forEach(function(myDocument) {
print(myDocument.InstructorName);
});실행 결과
위 쿼리를 실행하면 다음과 같이 문서의 값만 출력됩니다.
Sam Williams
핵심 포인트 정리
- 프로젝션(Projection): 두 번째 인수에서
{InstructorName: 1, _id: 0}처럼 필요한 필드만 지정하여 불필요한 데이터 조회를 줄일 수 있습니다. - forEach(): 커서가 반환하는 각 문서를 순회하며 자바스크립트 함수를 실행합니다.
- print(): MongoDB 셸에서 값을 텍스트 형태로 출력하는 기본 함수입니다.
이 방식은 스크립트 작업이나 데이터 추출 시 전체 문서 구조 없이 특정 값만 필요할 때 매우 유용하게 활용됩니다.