查询 MongoDB 以返回 5 个最近的记录(Mongoose 框架)[重复]

Posted

技术标签:

【中文标题】查询 MongoDB 以返回 5 个最近的记录(Mongoose 框架)[重复]【英文标题】:Querying MongoDB to return 5 most recent records (Mongoose framework) [duplicate] 【发布时间】:2018-10-05 03:22:57 【问题描述】:

我正在尝试查询我的 MongoDB 以返回最近的 5 条记录。我有 Mongoose 作为我的框架并使用 Node.js 作为我的服务器。我这里有模型:

var Schema = mongoose.Schema;
var uGardenDataModel = new Schema(
temp: String,
humidity: String,
soilMoisture: String,
light: String,
timestamp: Date,
);
// Create model
var uGardenData = mongoose.model('UGarden', uGardenDataModel);

我查询数据库的功能在这里:

function getChartData(res)
//uGardenData.find(,sort: _id:-1,limit: 5, function(err, post)
    uGardenData.find(sort:'timestamp': -1,limit: 5, function(err, post)
    if(err)
        res.send(success: false);
        console.log('failed');
     else 
        res.send(data:post,success:true);
        console.log('success');
    
)

我相信我的查询语法错误。一旦我使用浏览器的控制台对该函数发出 HTTP 请求,我就会得到: 数据:数组(0),成功:真

尽管数据库中有记录,但它似乎没有返回任何数据。 有什么想法吗?

【问题讨论】:

【参考方案1】:

是的,您错误地调用了find。根据手册,find 采用 1 个强制参数和 3 个可选参数。排序和限制是options 参数的一部分,它是第三个。所以你仍然需要通过前两个,虽然是空的。

试试下面的调用:

uGardenData.find(, null, sort:'timestamp': -1,limit: 5, function(err, post)

【讨论】:

成功了!谢谢一百万!

以上是关于查询 MongoDB 以返回 5 个最近的记录(Mongoose 框架)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

超过 500 万条记录的 MongoDB 查询性能

关于php查询mongodb限制返回字段的问题

MongoDB - 加载文档子集以进行查询

MongoDB管理命令收集

mongodb查询响应时间慢

MongoDB聚合查询性能提升