MongoDB에서 컬렉션의 최소값을 찾으려면 sort() 메서드와 limit(1)을 함께 사용하면 됩니다. 오름차순으로 정렬한 뒤 첫 번째 문서만 가져오는 방식으로, 가장 작은 값을 손쉽게 조회할 수 있습니다.
기본 문법
db.yourCollectionName.find().sort({yourFieldName: 1}).limit(1);필드명 뒤에 붙는 1은 오름차순 정렬을 의미합니다. 반대로 내림차순 정렬 후 limit(1)을 사용하면 최대값을 구할 수 있습니다.
예제 컬렉션 생성
개념을 이해하기 위해 실제 문서가 담긴 컬렉션을 만들어 보겠습니다. 아래 쿼리로 컬렉션에 문서를 삽입할 수 있습니다.
> db.findMinValueDemo.insertOne({"StudentMarks":78});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8f80ea2f684a30fbdfd59f")
}
> db.findMinValueDemo.insertOne({"StudentMarks":69});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8f80f02f684a30fbdfd5a0")
}
> db.findMinValueDemo.insertOne({"StudentMarks":79});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8f80f32f684a30fbdfd5a1")
}
> db.findMinValueDemo.insertOne({"StudentMarks":59});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8f80f82f684a30fbdfd5a2")
}
> db.findMinValueDemo.insertOne({"StudentMarks":91});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8f80fb2f684a30fbdfd5a3")
}전체 문서 조회
find() 메서드를 사용해 컬렉션의 모든 문서를 확인해 보겠습니다.
> db.findMinValueDemo.find().pretty();
실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5c8f80ea2f684a30fbdfd59f"), "StudentMarks" : 78 }
{ "_id" : ObjectId("5c8f80f02f684a30fbdfd5a0"), "StudentMarks" : 69 }
{ "_id" : ObjectId("5c8f80f32f684a30fbdfd5a1"), "StudentMarks" : 79 }
{ "_id" : ObjectId("5c8f80f82f684a30fbdfd5a2"), "StudentMarks" : 59 }
{ "_id" : ObjectId("5c8f80fb2f684a30fbdfd5a3"), "StudentMarks" : 91 }최소값 조회 쿼리 실행
이제 StudentMarks 필드를 기준으로 오름차순 정렬하고, limit(1)로 결과를 하나만 제한하여 최소값을 찾아보겠습니다.
> db.findMinValueDemo.find().sort({StudentMarks: 1}).limit(1);실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5c8f80f82f684a30fbdfd5a2"), "StudentMarks" : 59 }결과에서 확인할 수 있듯이, 전체 문서 중 가장 작은 값인 59가 반환되었습니다. 이처럼 sort()와 limit(1)의 조합은 MongoDB에서 최소값을 구하는 가장 간단하고 효율적인 방법입니다.