2017-12-11 7 views
1

"사용자"와 "뉴스"로 채워진 사용자, 뉴스 및 사용자 - 뉴스 "user-news"컬렉션이 있습니다.몽구제로 채워진 필드로 문서 정렬 및 검색

"user-news"문서를 "user.name"또는 "news.title"별로 정렬하고 검색 할 수 있습니까?

const usersSchema = new Schema({ name: String }) 

const newsSchema = new Schema({ title: String }), 

UsersNewsModel.find(queryObj) 
    .populate('user', 'name') 
    .populate('news', 'title') 
    .sort({ 'user.name': -1 }) 
    .exec((findError, records) => {...} 

답변

0

몽구스 채우기는 채워진 필드의 정렬을 지원하지 않습니다. 그러나 집계를 통해 이와 같은 작업을 수행 할 수 있습니다.

UsersNewsModel.aggregate([ 
 
    { 
 
    $lookup: { 
 
     from  : 'user', 
 
     localField : 'user', 
 
     foreignField: '_id', 
 
     as   : 'user' 
 
    } 
 
    }, 
 
    { 
 
    $unwind: { 
 
     path: $user 
 
    } 
 
    }, 
 
    { 
 
    $sort: { 
 
     user.name: -1 
 
    } 
 
    } 
 
])