【问题标题】:How to use limit in mongodb and NodeJS query如何在 mongodb 和 NodeJS 查询中使用限制
【发布时间】:2016-11-28 08:50:53
【问题描述】:

我只想从 mongo db 'property' 集合中提取 1 个文档。 它也应该是最新的文件。 它看起来很简单,但我不知道为什么我的查询没有检索到限制中指定的文档数。

ORIGINAL METHOD:此查询提取所有文档

app.get('/', function(req, res){      
    db.property.find(function (err, docs) {
    res.render("index.ejs",{property: docs});
  })
});

EDIT 1:此查询不提取任何内容

app.get('/', function(req, res){       
     db.property.find( {sort: {created_at: -1}, limit: 1}, function (err, docs) {
     res.render("index.ejs",{property: docs});
   })
}); 

EDIT 2:此查询提供正确的 1 个文档,但我现在想要最新的。

app.get('/', function(req, res){       
     db.property.find({}).limit(2).toArray(function (err, docs) {
     res.render("index.ejs",{property: docs});
   })
});

任何帮助将不胜感激。

谢谢

【问题讨论】:

标签: node.js mongodb sorting express limit


【解决方案1】:

我尝试了多种方式修改查询,最终得到了解决方案

app.get('/', function(req, res){       
    db.property.find({}).sort({timestamp: -1}).limit(1).toArray(function (err, docs) {
     res.render("index.ejs",{property: docs});
    })
});

【讨论】:

    【解决方案2】:
    var Property = require('../models/property');
    
    var q = Property.find().sort({created_at: -1}).limit(1);
        q.exec(function(err, property) {
            if (err) res.send(err);
            res.json(property);
        });
    

    你可以试试这个,如果结果有任何问题,请告诉我。

    【讨论】:

    • 我收到 TypeError: q.exec is not a function。我缺少任何依赖项吗?我是 nodejs 和 mongodb 的新手
    • 首先你需要使用“require”来导入你的模型。 var Property = require('../models/property'); 您可以使用变量“属性”获取记录。 var q = Property.find().sort({created_at: -1}).limit(1); q.exec(function(err, prop) { if (err) res.send(err); res.json(prop); });
    猜你喜欢
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多