2014-12-18 2 views
0

하위 문서에 객체의 배열을 정렬하고 내가 다시 데이터를 얻을 때 정렬을 실행하려면 : 데이터는 다음과 같습니다몽고 - 나는 몽구스를 사용하고

 Model 
      .findOne({_user: req.user._id, name: req.params.name}) 
      .sort({'music.vote': -1}) 

을, 나는의 배열을 주문하려면 투표 DESC로 인트로 - 뮤직 #n

{ 
     "__v": 2, 
     "_id": "5492bfaf59c17bdead8363c6", 
     "_owner": "5491e02a9f5418da92bfb4e6", 
     "createdAt": "2014-12-18T11:51:11.961Z", 
     "updatedAt": "2014-12-18T11:51:30.965Z", 
     "name": "list-one",   
     "music": [ 
      { 
       "name": "music 1", 
       "vote": 1, 
       ... 
      }, 
      { 
       "name": "music 2", 
       "vote": 5, 
       ... 
      } 
     ], 
     "_user": [ 
      "5491e02a9f5418da92bfb4e6" 
     ] 
    } 
+2

MongoDB의 쿼리 결과를 반환의 일환으로 당신을 위해 문서의 배열을 정렬 할 수 없습니다. 클라이언트 측 정렬 또는 정렬 된 순서로 저장할 수 있습니다. 정보 및 예제는 [$ sort] (http://docs.mongodb.org/manual/reference/operator/update/sort/#up._S_sort)를 참조하십시오. – wdberkeley

답변

0

이 몽구스의 버전에 따라 약간 다를 것이다, 그러나 findOne에 대한 메소드 서명은 다음과 같이 보입니다 :

function findOne(conditions, fields, options, callback) 

을 옵션 (정렬)으로 사용하면 mongoose가 필드 (로드 할 필드)로 처리됩니다.

당신은 필드에 null를 건네 명시 적으로 시도 할 수 있습니다 :

Model.findOne({}, null, {sort: {music.vote: -1 }}, callback); 
관련 문제