【问题标题】:List last N record from MongoDB collection列出 MongoDB 集合中的最后 N 条记录
【发布时间】:2020-05-20 18:29:54
【问题描述】:

我的app.js 中有以下route

// Home Route
app.get('/', function(req, res){
  Entry.find({}, function(err, entries){
    if(err){
      console.log(err);
    } else {
      res.render('index', {
        entries: entries
      });
    }
  });
});

这是在条目集合中显示所有条目。我只想显示数据库中的最后 100 条记录。最好的方法是什么?

我正在使用下面的pug 布局。

extends layout
    block content
      h1 #{title}
      ul.list-group
        each entry, i in entries
          li.list-group-item
            a(href=entry.entryurl)= entry.title

【问题讨论】:

    标签: node.js mongodb pug


    【解决方案1】:
    Entry.find({}).sort({ "_id" : -1 }).limit(100).exec(function(err, entries) {
        // Do something here
    });
    

    【讨论】:

    • 这没有加载任何数据。
    【解决方案2】:

    您也可以使用 javascript 仅将最后 100 个项目发送到 Pug 布局:

    // Home Route
    app.get('/', function(req, res){
      Entry.find({}, function(err, entries){
        if(err){
          console.log(err);
        } else {
          let lastHundred = entries.slice(-100);
          res.render('index', {
            entries: lastHundred
          });
        }
      });
    });
    

    【讨论】:

    • 那很糟糕。你仍然加载不必要的整个集合只是为了切片最后 100
    • 显然这是迄今为止唯一可行的解​​决方案,但@Ifaruki 提到我不想加载整个数据并对其进行切片。
    猜你喜欢
    • 2018-11-23
    • 1970-01-01
    • 2011-05-24
    • 2021-04-24
    • 2020-12-11
    • 1970-01-01
    • 2020-03-26
    • 2020-03-14
    相关资源
    最近更新 更多