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

MongoDB에서 $limit 연산자로 조회할 레코드 수 제한하는 방법

MongoDB에서 반환되는 문서(레코드)의 개수를 제한하고 싶다면 집계 파이프라인의 $limit 연산자를 활용하면 됩니다. 이 글에서는 실제 예제를 통해 $limit의 기본적인 사용법을 단계별로 살펴보겠습니다.

1. 샘플 컬렉션 생성하기

먼저 insertOne() 메서드를 사용하여 demo240이라는 컬렉션에 학생 이름 데이터를 담은 문서들을 생성합니다.

> db.demo240.insertOne({"StudentName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e441d969af932883c61ea3c")
}
> db.demo240.insertOne({"StudentName":"Bob"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e441d9a9af932883c61ea3d")
}
> db.demo240.insertOne({"StudentName":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e441d9d9af932883c61ea3e")
}
> db.demo240.insertOne({"StudentName":"Mike"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e441da19af932883c61ea3f")
}

2. 전체 문서 확인하기

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

> db.demo240.find();

위 쿼리를 실행하면 다음과 같이 4개의 문서가 출력됩니다.

{ "_id" : ObjectId("5e441d969af932883c61ea3c"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5e441d9a9af932883c61ea3d"), "StudentName" : "Bob" }
{ "_id" : ObjectId("5e441d9d9af932883c61ea3e"), "StudentName" : "David" }
{ "_id" : ObjectId("5e441da19af932883c61ea3f"), "StudentName" : "Mike" }

3. $limit으로 레코드 수 제한하기

이제 aggregate() 메서드와 함께 $limit을 사용하여 결과 개수를 제한해 보겠습니다. 아래 쿼리는 최대 3개의 문서만 반환합니다.

> db.demo240.aggregate( { $limit : 3 });

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

{ "_id" : ObjectId("5e441d969af932883c61ea3c"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5e441d9a9af932883c61ea3d"), "StudentName" : "Bob" }
{ "_id" : ObjectId("5e441d9d9af932883c61ea3e"), "StudentName" : "David" }

출력 결과에서 볼 수 있듯이, 컬렉션에는 4개의 문서가 있지만 $limit : 3 조건에 따라 처음 3개의 문서만 반환되었습니다.

정리

$limit은 집계 파이프라인에서 지정한 개수만큼만 문서를 통과시키는 스테이지입니다. 대용량 컬렉션에서 일부 데이터만 빠르게 확인하거나, 페이지네이션을 구현할 때 매우 유용하게 사용됩니다. 참고로 $limit은 보통 $sort나 $match와 함께 파이프라인 순서에 맞게 조합하여 사용하는 것이 일반적입니다.