使用Express路由器时如何实现MongoDB排序

时间:2019-03-28 13:11:21

标签: javascript mongodb express mongoose express-router

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

这是我到目前为止拥有的代码,它可以完美运行并返回我想要的值,但是我现在想实现我存储在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的降序返回。

1 个答案:

答案 0 :(得分:0)

尝试以下语法:

alter table TableName change UpdatedAt ON UPDATE CURRENT_TIMESTAMP;

或使用async / await:

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