使用 express router 时如何实现 MongoDB 排序

How to implement a MongoDB sort when using express router

我正在尝试在 Model.find() 中使用 MongoDB 的一种默认排序算法,但是我不知道如何以这种方式实现排序功能。我知道它是如何工作的以及如何在 mongo 命令行中使用它,但不知道如何在这个庄园中实现它。

这是我目前的代码,它运行良好并且 returns 我想要的值,但是我现在想实现我存储在 mySort 中的排序来排序数据返回。

const express = require('express'),
    router = express.Router(),
    House = require('../models/house'),
    Event = require('../models/event');

router.get('/', function(req, res){

    var mySort = {totalPoints: -1};

    House.find({}, function(err, houses){
        if(err){
            console.log(err);
            res.redirect('/error');
        } else {
            res.render('houses/index', {pageTitle: 'Houses', houses: houses});
        }
    });
});

module.exports = router;

我希望 houses 会以 totalPoints.

的降序值返回庄园

试试这个语法:

House
   .find()
   .sort("-totalPoints") // or { "totalPoints" : -1 }
   .exec( houses => ... )

或 async/await :

const houses = await House.find().sort("-totalPoints")