如何对mongodb数据库进行排序?

时间:2014-10-12 11:52:23

标签: node.js mongodb sorting mongoose

我有一个看起来像的集合,

[
  {"_id":"543a631d525dc7684bb730e3","word":"sda","description":"dsa"},
  {"_id":"543a634e525dc7684bb730e4","word":"dsa","description":"dasda"},
  {"_id":"543a6886525dc7684bb730e5","word":"sadas","description":"asaaa"}
]

我无法按字母顺序对列表进行排序, 我现在尝试的是 -

router.get('/userlist', function(req, res) {
    var db = req.db;
    db.collection('userlist').find().sort({ word: 1 })
    db.collection('userlist').find().toArray(function (err, items) {
        res.json(items);
    });
});

有没有人知道如何按字母对此列表进行排序?

2 个答案:

答案 0 :(得分:1)

这不是它的工作方式,如果您有任何编程背景,那么您应该知道第一个db...find()将返回您想要的data (cursor),但您不会将该数据存储在任何变量,在您的第二个db....find()中,您没有应用sort

所以,我知道你自己找到了答案,但你仍然可以使用这样的东西,

router.get('/userlist', function(req, res) {
    db.collection('userlist').find().sort({ word: 1 }).toArray(function (err, items) {
        res.json(items);
    });
});

答案 1 :(得分:0)

如果您使用的是猫鼬,可以按如下方式排序:

router.route('/userlist')

// CREATE ROUTE FOR USERLIST
// =========================
.get(function(req, res) {

  // SEND THE USERLIST AFTER SORTING THEM OUT IN ALPHABETICAL ORDER
  Snippets.find().sort({time: -1}).exec(function(err, items) {
    res.json(items);
  })
})