2017-09-19 3 views
0

, 나는라는 이름의 컬렉션이 문서 "항목"이 있다고 컬렉션의 가장 높은 필드 값을 찾는 방법 :예를 들어

{ 
    rank: 1 
} 
{ 
    rank: 2 
} 
{ 
    rank: 3 
} 

가 어떻게 가장 높은 순위 값을 찾을 것을 (3)를 변수에 할당 할 항목 컬렉션에 있습니까?

답변

3

당신은 하나 개의 항목에 랭크 제한하여 문서를 정렬 할 수 있습니다.

var maxRank = MyCollection.findOne({}, {sort:{rank:-1}, limit: 1}).rank; 
+0

계급의 유일한 가치를 부여 할 수 있습니까? –

+0

방금 ​​내 대답을 편집했습니다. –

0

이를 사용할 수 있습니다

var arr = [{ 
 
    rank: 1 
 
}, 
 
{ 
 
    rank: 2 
 
}, 
 
{ 
 
    rank: 3 
 
}]; 
 

 
var max; 
 
for (var i=0 ; i<arr.length ; i++) { 
 
    if (!max || arr[i].rank > max){ 
 
     max = arr[i].rank; 
 
    } 
 
} 
 
console.log(max);

+0

내가 처음에 그런 식으로 갔다,하지만 난 그가 몽고 수집이 아닌 자바 스크립트 배열을 의미한다고 생각 :

MyCollection.findOne({}, {sort:{rank:-1}, limit: 1}); // Document with max rank MyCollection.findOne({}, {sort:{rank:+1}, limit: 1}); // Document with min rank 

그래서 당신은 그런 당신의 최대 순위 값을 얻는다. @ 가렛은 맞습니까? –

+0

그렇다면 @garrett는'sort ({ "rank": - 1})'을 사용하고 1로 제한하십시오 –

+0

예, mongo를 사용합니다. 죄송합니다. –