MongoDB에서 컬렉션의 문서(레코드)를 정렬하려면 sort() 메서드를 사용합니다. 이번 글에서는 예제 컬렉션을 만들고, sort()를 활용해 데이터를 오름차순으로 정렬하는 과정을 단계별로 살펴보겠습니다.
1. 샘플 컬렉션 생성
먼저 insertOne() 메서드를 사용해 demo32 컬렉션에 문서들을 추가합니다.
> db.demo32.insertOne({"Name":"Chris"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e175158cfb11e5c34d898c5")
}
> db.demo32.insertOne({"Name":"Bob"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e17515ccfb11e5c34d898c6")
}
> db.demo32.insertOne({"Name":"Adam"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e175160cfb11e5c34d898c7")
}
> db.demo32.insertOne({"Name":"John"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e175165cfb11e5c34d898c8")
}
> db.demo32.insertOne({"Name":"Carol"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e17517bcfb11e5c34d898c9")
}2. 전체 문서 조회하기
find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 확인할 수 있습니다.
> db.demo32.find();
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다. 문서가 삽입된 순서대로 표시되는 것을 볼 수 있습니다.
{ "_id" : ObjectId("5e175158cfb11e5c34d898c5"), "Name" : "Chris" }
{ "_id" : ObjectId("5e17515ccfb11e5c34d898c6"), "Name" : "Bob" }
{ "_id" : ObjectId("5e175160cfb11e5c34d898c7"), "Name" : "Adam" }
{ "_id" : ObjectId("5e175165cfb11e5c34d898c8"), "Name" : "John" }
{ "_id" : ObjectId("5e17517bcfb11e5c34d898c9"), "Name" : "Carol" }3. sort()로 이름 기준 정렬하기
이제 Name 필드를 기준으로 정렬해 보겠습니다. sort() 메서드에 {"Name": 1}을 전달하면 오름차순(1은 오름차순, -1은 내림차순)으로 정렬됩니다.
> db.demo32.find().sort({"Name":1});실행 결과는 다음과 같습니다. 이름이 알파벳 순서(Adam → Bob → Carol → Chris → John)로 정렬된 것을 확인할 수 있습니다.
{ "_id" : ObjectId("5e175160cfb11e5c34d898c7"), "Name" : "Adam" }
{ "_id" : ObjectId("5e17515ccfb11e5c34d898c6"), "Name" : "Bob" }
{ "_id" : ObjectId("5e17517bcfb11e5c34d898c9"), "Name" : "Carol" }
{ "_id" : ObjectId("5e175158cfb11e5c34d898c5"), "Name" : "Chris" }
{ "_id" : ObjectId("5e175165cfb11e5c34d898c8"), "Name" : "John" }참고: 내림차순 정렬
반대로 내림차순으로 정렬하고 싶다면 sort 값에 -1을 지정하면 됩니다. 예를 들어 db.demo32.find().sort({"Name":-1})을 실행하면 John부터 Adam까지 역순으로 출력됩니다.