Mongodb: 컬렉션에서 최대값을 찾는 방법


다음 방법을 사용하여 MongoDB에서 필드의 최대값을 찾을 수 있습니다.

방법 1: 최대값이 포함된 문서 반환

 db.teams.find().sort({" field ": -1 }).limit( 1 )

이 코드 조각은 특정 필드를 기준으로 컬렉션의 모든 문서를 내림차순으로 정렬한 다음 첫 번째 문서만 반환합니다.

방법 2: 최대값만 반환

 db.teams.find().sort({" field ": -1 }).limit( 1 ).toArray().map(function(u){ return u.field})

다음 예는 다음 문서를 가지고 수집 과 함께 각 방법을 사용하는 방법을 보여줍니다.

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

예시 1: 최대값을 포함하는 문서 반환

다음 코드를 사용하여 “포인트” 필드의 최대값을 포함하는 문서를 반환할 수 있습니다.

 db.teams.find().sort({" points ": -1 }).limit( 1 ) 

이 쿼리는 다음 문서를 반환합니다.

 { _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

이 문서는 모든 문서 중 “포인트” 필드에 가장 높은 값(33)이 포함되어 있으므로 반환됩니다.

예시 2: 최대값만 반환

다음 코드를 사용하여 모든 문서의 “포인트” 필드에 최대값만 반환할 수 있습니다.

 db.teams.find().sort({" points ": -1 }).limit( 1 ).toArray().map(function(u){ return u.points})

이 쿼리는 다음 결과를 반환합니다.

 [33]

최대값을 포함하는 전체 문서 대신 최대값 자체(33)만 반환됩니다.

추가 리소스

다음 튜토리얼에서는 MongoDB에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

MongoDB: 그룹화 및 계산 방법
MongoDB: 여러 필드로 그룹화하는 방법
MongoDB: 필드에 문자열이 포함되어 있는지 확인하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다