MongoDB에서 limit()과 toArray()로 특정 문서 가져오기
MongoDB에서 특정 개수의 문서만 골라서 가져오고 싶다면 limit() 메서드와 toArray() 메서드를 함께 사용하면 됩니다. toArray()는 커서(cursor)에 담겨 있는 모든 문서를 하나의 배열 형태로 반환해 주는 메서드입니다.
먼저 예제에 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.
> db.demo482.insertOne({_id:1,"StudentInformation":[{"Name":"Chris","Age":21}]});
{ "acknowledged" : true, "insertedId" : 1 }
> db.demo482.insertOne({_id:2,"StudentInformation":[{"Name":"Bob","Age":23}]});
{ "acknowledged" : true, "insertedId" : 2 }
> db.demo482.insertOne({_id:3,"StudentInformation":[{"Name":"David","Age":20}]});
{ "acknowledged" : true, "insertedId" : 3 }컬렉션의 모든 문서 조회하기
find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 한눈에 확인할 수 있습니다.
> db.demo482.find();
위 명령을 실행하면 다음과 같은 결과가 출력됩니다.
{ "_id" : 1, "StudentInformation" : [ { "Name" : "Chris", "Age" : 21 } ] }
{ "_id" : 2, "StudentInformation" : [ { "Name" : "Bob", "Age" : 23 } ] }
{ "_id" : 3, "StudentInformation" : [ { "Name" : "David", "Age" : 20 } ] }limit()으로 원하는 개수만큼 문서 가져오기
이번에는 limit()을 활용해 특정 개수의 문서만 가져오는 쿼리를 살펴보겠습니다. 아래 예제는 최대 2개의 문서만 배열로 반환합니다.
> db.demo482.find({}).limit(2).toArray();실행 결과는 다음과 같습니다.
[
{
"_id" : 1,
"StudentInformation" : [
{
"Name" : "Chris",
"Age" : 21
}
]
},
{
"_id" : 2,
"StudentInformation" : [
{
"Name" : "Bob",
"Age" : 23
}
]
}
]이처럼 find()에 limit()을 체이닝한 뒤 toArray()로 마무리하면, 커서 전체가 아닌 지정한 개수의 문서만 배열 형태로 간편하게 받아올 수 있습니다. 대량의 데이터 중 일부 샘플만 빠르게 확인하거나, 페이지네이션 기능을 구현할 때 특히 유용하게 활용할 수 있습니다.