2012-07-22 2 views
3

정렬 내가몽구스 - 배열의 길이

var PostSchema = new Schema({ 
    title: {type: String, trim: true} 
    , description: {type: String, trim: true} 
    , votes: [{ type: Schema.ObjectId, ref: 'User' }] 
}) 

내가 투표의 즉에 따라 게시물을 정렬 할이 스키마를 데, 나는 배열의 길이를 기준으로 정렬 할 필요가있다.

은 일반적인 방법을 시도하지만,

PostSchema.statics.trending = function (cb) { 
    return this.find().sort('votes', -1).limit(5).exec(cb) 
} 

어떤 도움을 작동 din't?

몽구스 사용 버전 2.7.2

답변

7

직접 할 수 없습니다. 배열 길이를 정렬 할 수 있으려면 별도의 필드 (votes_count 또는 기타)에 유지해야하며 요소를 votes에서 /로 당길 때 업데이트해야합니다.

그런 다음 votes_count 필드를 정렬합니다. 또한 색인을 생성하면 쿼리가 빨라집니다.