Как реализовать сортировку MongoDB при использовании экспресс-роутера - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь использовать один из алгоритмов сортировки по умолчанию MongoDB в Model.find(), однако я не могу понять, как реализовать функцию сортировки таким образом. Я знаю, как это работает и как использовать его в командной строке 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 голосов
/ 28 марта 2019

Попробуйте этот синтаксис:

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

или с асинхронным / ожидающим:

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