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

MongoDB 쿼리에서 특정 값 목록을 반환하는 방법

네, map() 메서드를 사용하면 MongoDB 쿼리에서 특정 값들의 목록을 손쉽게 반환할 수 있습니다. 이번 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.

1. 컬렉션 생성 및 문서 삽입

먼저 문서를 담을 컬렉션을 생성합니다. insertOne() 메서드를 사용해 학생 이름 데이터를 하나씩 삽입해 보겠습니다.

> db.listOfSpecificValuesDemo.insertOne({"StudentName":"John"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefcc8fef71edecf6a1f6bb")
}
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefcc94ef71edecf6a1f6bc")
}
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"Robert"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefcc98ef71edecf6a1f6bd")
}
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefcc9cef71edecf6a1f6be")
}

2. 저장된 전체 문서 조회하기

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

> db.listOfSpecificValuesDemo.find();

출력 결과

{ "_id" : ObjectId("5cefcc8fef71edecf6a1f6bb"), "StudentName" : "John" }
{ "_id" : ObjectId("5cefcc94ef71edecf6a1f6bc"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5cefcc98ef71edecf6a1f6bd"), "StudentName" : "Robert" }
{ "_id" : ObjectId("5cefcc9cef71edecf6a1f6be"), "StudentName" : "David" }

3. map()으로 특정 값 목록 반환하기

이제 find()와 함께 map() 메서드를 사용하여 StudentName 필드의 값만 추출해 보겠습니다. map()은 커서(cursor)의 각 문서에 지정한 함수를 적용하고, 그 결과를 배열 형태로 반환해 줍니다.

> db.listOfSpecificValuesDemo.find().map(function(myDocument){ return myDocument.StudentName });

출력 결과

[ "John", "Chris", "Robert", "David" ]

위 예제에서 볼 수 있듯이, map() 메서드를 활용하면 쿼리 결과 전체가 아닌 원하는 필드의 값만 깔끔한 배열 형태로 얻을 수 있습니다. 이는 자바스크립트 배열의 map()과 유사하게 동작하기 때문에, 클라이언트 측에서 추가 가공 없이 바로 활용할 수 있다는 장점이 있습니다. 참고로 대량의 데이터를 다룰 때는 집계 파이프라인(aggregate)의 $group 연산자 등을 함께 고려하면 더 효율적인 처리가 가능합니다.