我如何在Mongoose中排序?

时间:2014-03-09 05:07:03

标签: node.js mongodb express mongoose

我正在使用Mongoose和Express。

的package.json

"dependencies": {
    "express": "3.4.8",
    "jade": "*",
    "mongoose": "*"
  }

在我的路线中,当我查询这样的事件列表时:

Event.find({sort: {month: 'asc'}}, function(err, events){
    res.render('charity', { title: 'Charity', events: events });
});

一切都很好,应用程序会向视图发送一系列事件。但是,当我尝试按月分类时(像这样),我得到一个空集:

Event.find({sort: {month: 'asc'}}, function(err, events){
    res.render('charity', { title: 'Charity',  events: events });
});

排序的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

mongoose中的.find()函数实际上返回一个query对象。虽然在查找中查询后立即传递回调是很常见的,但您可以链接到其他方法,.sort()就是其中之一。

所以你试图在“查询”部分中声明“排序”,而是:

Event.find({}).sort({month: 'asc'}).exec(function(err, events){
    res.render('charity', { title: 'Charity', events: events });
});

哪个是较长的表单,但允许您使用query对象上的方法。