mongoosesorting和search文件由填充字段

我收集用户,新闻和用户新闻,“用户新闻”填充到“用户”和“新闻”。

我可以通过“user.name”或“news.title”来sorting和search“user-news”的文档吗?

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) => {...} 

mongoose填充不支持从填充字段sorting。 但是你可以用aggregate来做这样的事情。

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