MongoDB按多个字段排序

MongoDB按多个字段排序,mongodb,mongoose,Mongodb,Mongoose,我正在与职位,可以投票。每一次投票都有助于一个职位的得分。每个帖子都有一个id和一个分数。我正在尝试查询MongoDB以查找热门帖子。我想通过按帖子发布时间排序,取最近的100个,然后按分数排序这100个。Post是一个mongoose模式,其中包含_id和分数。我试过: Post.find({}).sort({_id: -1}).limit(100).sort({score: -1}).exec(function(err, posts) { if(err){ res.s

我正在与职位,可以投票。每一次投票都有助于一个职位的得分。每个帖子都有一个id和一个分数。我正在尝试查询MongoDB以查找热门帖子。我想通过按帖子发布时间排序,取最近的100个,然后按分数排序这100个。Post是一个mongoose模式,其中包含_id和分数。我试过:

Post.find({}).sort({_id: -1}).limit(100).sort({score: -1}).exec(function(err, posts) {
    if(err){
        res.status(500).send(err);
    } else {
        //do stuff
    }
});
但是,这会导致错误。如何修复它或以不同的方式实现所需的排序?谢谢

您可以使用来执行多个排序阶段:

邮政集邮[ {$sort:{u id:-1}}, {$limit:100}, {$sort:{score:-1}} ],functionerr,posts{…};