如何在mongodb和NodeJS查询中使用限制

时间:2016-11-28 08:50:53

标签: node.js mongodb sorting express limit

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

原始方法:此查询提取所有文档

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

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

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

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

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

非常感谢任何帮助。

谢谢

2 个答案:

答案 0 :(得分:1)

我试过用几种方法修改查询,最后得到了解决方案

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

答案 1 :(得分:0)

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

你可以尝试一下,如果结果有任何问题,请告诉我。