MongoDB에서 데이터를 정렬하려면 sort() 메서드를 사용하고, 특정 개수의 문서만 표시하려면 limit() 메서드를 사용합니다. 이 두 메서드를 함께 사용하면 정렬된 결과 중 원하는 만큼의 레코드만 손쉽게 가져올 수 있습니다.
1. 컬렉션 생성 및 문서 삽입
먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.
> db.demo254.insertOne({"Name":"Chris"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e47a0ab1627c0c63e7dba7f")
}
> db.demo254.insertOne({"Name":"Adam"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e47a0b01627c0c63e7dba80")
}
> db.demo254.insertOne({"Name":"Bob"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e47a0b71627c0c63e7dba81")
}2. find()로 전체 문서 확인하기
find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 조회할 수 있습니다.
> db.demo254.find();
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
{ "_id" : ObjectId("5e47a0ab1627c0c63e7dba7f"), "Name" : "Chris" }
{ "_id" : ObjectId("5e47a0b01627c0c63e7dba80"), "Name" : "Adam" }
{ "_id" : ObjectId("5e47a0b71627c0c63e7dba81"), "Name" : "Bob" }3. sort()로 오름차순 정렬하기
이제 sort() 메서드를 사용해 Name 필드를 기준으로 정렬해 보겠습니다. 값이 1이면 오름차순, -1이면 내림차순으로 정렬됩니다.
> db.demo254.find().sort({"Name":1});실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5e47a0b01627c0c63e7dba80"), "Name" : "Adam" }
{ "_id" : ObjectId("5e47a0b71627c0c63e7dba81"), "Name" : "Bob" }
{ "_id" : ObjectId("5e47a0ab1627c0c63e7dba7f"), "Name" : "Chris" }4. sort()와 limit() 함께 사용하기
정렬된 결과에서 특정 개수의 레코드만 가져오려면 limit() 메서드를 체이닝하여 사용합니다. 아래 예제는 이름 기준 오름차순으로 정렬한 뒤 상위 2개의 문서만 반환합니다.
> db.demo254.find().sort({"Name":1}).limit(2);실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5e47a0b01627c0c63e7dba80"), "Name" : "Adam" }
{ "_id" : ObjectId("5e47a0b71627c0c63e7dba81"), "Name" : "Bob" }정리
MongoDB에서는 sort()로 정렬 기준 필드와 방향(오름차순 1, 내림차순 -1)을 지정하고, limit(n)을 추가하면 정렬된 순서대로 n개의 문서만 조회할 수 있습니다. 이 조합은 최신 게시물 상위 N개, 인기 항목 TOP 리스트 등 페이지네이션이나 랭킹 조회에 매우 유용하게 활용됩니다.