【问题标题】:how to sort a mongodb database?如何对 mongodb 数据库进行排序?
【发布时间】:2017-03-11 16:37:33
【问题描述】:

我的收藏看起来像,

[
  {"_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);
    });
});

有人知道如何按单词对列表进行排序吗?

【问题讨论】:

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

标签: node.js mongodb sorting mongoose


【解决方案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);
    });
});

【讨论】:

    【解决方案2】:

    如果你用的是mongoose,可以按如下方式排序:

    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);
      })
    })
    

    【讨论】:

      猜你喜欢
      • 2021-02-13
      • 2023-03-27
      • 2017-11-23
      • 2011-12-10
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 2023-02-22
      • 2013-12-06
      相关资源
      最近更新 更多