MongoDB limit() 메서드로 레코드 개수 제한하기
MongoDB에서 특정 개수의 레코드(문서)만 조회하고 싶다면 limit() 메서드를 사용하면 됩니다. 이 메서드는 숫자 타입의 인자를 하나 받으며, 해당 값은 화면에 표시할 문서의 개수를 의미합니다.
1. 샘플 컬렉션 생성
먼저 문서를 포함하는 컬렉션을 생성해 보겠습니다.
> db.demo549.insertOne({"Name":"Chris"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e8e32889e5f92834d7f05df")
}
> db.demo549.insertOne({"Name":"David"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e8e328c9e5f92834d7f05e0")
}
> db.demo549.insertOne({"Name":"Bob"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e8e328f9e5f92834d7f05e1")
}
> db.demo549.insertOne({"Name":"John"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e8e32929e5f92834d7f05e2")
}위 명령어로 'Chris', 'David', 'Bob', 'John'이라는 네 개의 이름 데이터가 담긴 demo549 컬렉션이 생성되었습니다.
2. 전체 문서 조회하기
find() 메서드를 사용하면 컬렉션의 모든 문서를 확인할 수 있습니다.
> db.demo549.find();
실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5e8e32889e5f92834d7f05df"), "Name" : "Chris" }
{ "_id" : ObjectId("5e8e328c9e5f92834d7f05e0"), "Name" : "David" }
{ "_id" : ObjectId("5e8e328f9e5f92834d7f05e1"), "Name" : "Bob" }
{ "_id" : ObjectId("5e8e32929e5f92834d7f05e2"), "Name" : "John" }3. limit()으로 조회 개수 지정하기
이제 limit() 메서드를 사용해 지정된 개수의 레코드만 조회해 보겠습니다. 아래 쿼리는 최대 2개의 문서만 반환합니다.
> db.demo549.find().limit(2);
실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5e8e32889e5f92834d7f05df"), "Name" : "Chris" }
{ "_id" : ObjectId("5e8e328c9e5f92834d7f05e0"), "Name" : "David" }limit() 사용 시 참고 사항
- limit()에 인자를 0으로 설정하면 모든 문서가 반환됩니다.
- skip() 메서드와 함께 사용하면 특정 위치부터 원하는 개수만큼 건너뛰며 조회할 수 있어 페이징 처리에 유용합니다.
- sort()와 조합하면 정렬된 결과 중 상위 N개의 문서를 가져올 수 있습니다. 예: db.demo549.find().sort({"Name":1}).limit(2)
이처럼 MongoDB의 limit() 메서드를 활용하면 대량의 데이터 중에서 필요한 만큼의 레코드만 효율적으로 조회할 수 있습니다.