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

MongoDB에서 오름차순 정렬하는 방법 – sort() 메서드 활용 가이드

MongoDB 오름차순 정렬의 기본 문법

MongoDB에서 데이터를 오름차순으로 정렬하려면 find() 메서드와 함께 sort() 메서드를 사용합니다. 정렬 대상 필드의 값을 1로 지정하면 작은 값부터 큰 값 순서(오름차순)로 정렬되며, -1을 지정하면 내림차순으로 정렬됩니다.

db.yourCollectionName.find().sort({yourField:1});

예제용 컬렉션 생성하기

개념을 쉽게 이해하기 위해 실제 문서(document)가 들어 있는 컬렉션을 먼저 만들어 보겠습니다. 아래 쿼리는 'Value' 필드를 가진 문서들을 하나씩 삽입하는 예제입니다.

> db.sortingDemo.insertOne({"Value":100});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c8f8e2ed3c9d04998abf006")
}
> db.sortingDemo.insertOne({"Value":1});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c8f8e31d3c9d04998abf007")
}
> db.sortingDemo.insertOne({"Value":150});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c8f8e34d3c9d04998abf008")
}
> db.sortingDemo.insertOne({"Value":250});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c8f8e37d3c9d04998abf009")
}
> db.sortingDemo.insertOne({"Value":5});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c8f8e3bd3c9d04998abf00a")
}
> db.sortingDemo.insertOne({"Value":199});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c8f8e3ed3c9d04998abf00b")
}
> db.sortingDemo.insertOne({"Value":243});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c8f8e44d3c9d04998abf00c")
}
> db.sortingDemo.insertOne({"Value":290});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c8f8e48d3c9d04998abf00d")
}

find() 메서드로 전체 문서 조회하기

컬렉션에 저장된 모든 문서를 확인하려면 find() 메서드를 사용합니다. pretty()를 붙이면 결과를 보기 좋게 정렬된 형태로 출력할 수 있습니다.

> db.sortingDemo.find().pretty();

실행 결과는 다음과 같습니다. 현재는 문서가 삽입된 순서대로 출력되는 것을 확인할 수 있습니다.

{ "_id" : ObjectId("5c8f8e2ed3c9d04998abf006"), "Value" : 100 }
{ "_id" : ObjectId("5c8f8e31d3c9d04998abf007"), "Value" : 1 }
{ "_id" : ObjectId("5c8f8e34d3c9d04998abf008"), "Value" : 150 }
{ "_id" : ObjectId("5c8f8e37d3c9d04998abf009"), "Value" : 250 }
{ "_id" : ObjectId("5c8f8e3bd3c9d04998abf00a"), "Value" : 5 }
{ "_id" : ObjectId("5c8f8e3ed3c9d04998abf00b"), "Value" : 199 }
{ "_id" : ObjectId("5c8f8e44d3c9d04998abf00c"), "Value" : 243 }
{ "_id" : ObjectId("5c8f8e48d3c9d04998abf00d"), "Value" : 290 }

오름차순으로 정렬된 결과 얻기

이제 'Value' 필드를 기준으로 오름차순 정렬을 적용해 보겠습니다. sort() 메서드 안에서 해당 필드에 1을 지정하면 됩니다.

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

실행 결과는 다음과 같습니다. 값이 1부터 시작하여 290까지 작은 순서대로 깔끔하게 정렬된 것을 확인할 수 있습니다.

{ "_id" : ObjectId("5c8f8e31d3c9d04998abf007"), "Value" : 1 }
{ "_id" : ObjectId("5c8f8e3bd3c9d04998abf00a"), "Value" : 5 }
{ "_id" : ObjectId("5c8f8e2ed3c9d04998abf006"), "Value" : 100 }
{ "_id" : ObjectId("5c8f8e34d3c9d04998abf008"), "Value" : 150 }
{ "_id" : ObjectId("5c8f8e3ed3c9d04998abf00b"), "Value" : 199 }
{ "_id" : ObjectId("5c8f8e44d3c9d04998abf00c"), "Value" : 243 }
{ "_id" : ObjectId("5c8f8e37d3c9d04998abf009"), "Value" : 250 }
{ "_id" : ObjectId("5c8f8e48d3c9d04998abf00d"), "Value" : 290 }

추가 팁: 내림차순 정렬이 필요하다면?

반대로 큰 값부터 작은 값 순서로 정렬하고 싶다면 필드 값에 -1을 지정하면 됩니다. 예를 들어 db.sortingDemo.find().sort({Value:-1})처럼 작성하면 290부터 1까지 내림차순으로 결과가 출력됩니다. 이처럼 sort() 메서드의 정렬 방향 값만 바꾸면 오름차순과 내림차순을 손쉽게 전환할 수 있습니다.