查询 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 框架)[重复]的主要内容,如果未能解决你的问题,请参考以下文章