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

MongoDB에서 문서를 내림차순으로 정렬하는 방법

MongoDB에서 문서를 내림차순으로 정렬하려면 find() 메서드와 함께 sort() 메서드를 사용하면 됩니다. sort()에 필드 이름과 함께 -1을 지정하면 해당 필드를 기준으로 내림차순(큰 값부터 작은 값 순) 정렬이 수행됩니다.

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

먼저 예제로 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.

> db.demo630.insertOne({"Value":10});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9b080e6c954c74be91e6ba")
}
> db.demo630.insertOne({"Value":200});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9b08116c954c74be91e6bb")
}
> db.demo630.insertOne({"Value":40});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9b08146c954c74be91e6bc")
}
> db.demo630.insertOne({"Value":60});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9b08176c954c74be91e6bd")
}

2. 전체 문서 조회하기

find() 메서드를 사용하여 컬렉션의 모든 문서를 출력합니다.

> db.demo630.find();

위 쿼리는 다음과 같은 결과를 출력합니다.

{ "_id" : ObjectId("5e9b080e6c954c74be91e6ba"), "Value" : 10 }
{ "_id" : ObjectId("5e9b08116c954c74be91e6bb"), "Value" : 200 }
{ "_id" : ObjectId("5e9b08146c954c74be91e6bc"), "Value" : 40 }
{ "_id" : ObjectId("5e9b08176c954c74be91e6bd"), "Value" : 60 }

3. sort()로 내림차순 정렬하기

이제 sort() 메서드를 사용하여 Value 필드를 기준으로 내림차순 정렬하는 쿼리를 실행해 보겠습니다.

> db.demo630.find().sort({Value:-1});

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

{ "_id" : ObjectId("5e9b08116c954c74be91e6bb"), "Value" : 200 }
{ "_id" : ObjectId("5e9b08176c954c74be91e6bd"), "Value" : 60 }
{ "_id" : ObjectId("5e9b08146c954c74be91e6bc"), "Value" : 40 }
{ "_id" : ObjectId("5e9b080e6c954c74be91e6ba"), "Value" : 10 }

출력 결과를 보면 Value 값이 200 → 60 → 40 → 10 순서로, 즉 큰 값부터 작은 값 순으로 정렬된 것을 확인할 수 있습니다.

정리

  • sort({필드명: -1}) : 해당 필드를 기준으로 내림차순 정렬
  • sort({필드명: 1}) : 해당 필드를 기준으로 오름차순 정렬

참고로 실무 환경에서는 대량의 데이터를 자주 정렬하는 경우 인덱스를 활용하는 것이 성능 면에서 유리합니다. 정렬에 사용되는 필드에 인덱스를 생성해 두면 MongoDB가 메모리 내 정렬(in-memory sort) 없이 빠르게 결과를 반환할 수 있습니다.