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

MongoDB에서 최소값 찾는 방법 – sort()와 limit(1) 활용하기

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에서 최소값을 구하는 가장 간단하고 효율적인 방법입니다.