【发布时间】:2020-12-11 09:12:55
【问题描述】:
我在编写用于从 mongoDB 集合中获取最新 N 条记录的回调时遇到问题。我正在创建一个名为 /pp 的 Express 路由,它将在我的数据库中返回内容。我以前只是返回其中的所有内容,因此类似于:
app.get("/pp", function (req, res) {
PPOverTime.find({}, function (error, documents) {
res.send(documents);
});
});
(PPovertime 是我收藏的名字)
但我现在想将最后 N 条记录放入数据库,根据上面链接的 Stack Overflow 帖子,这是通过 "db.foo.find().sort({_id:-1}).limit 完成的(30)" 例如最后 30 个条目。
那么我在哪里放置回调函数来返回响应呢?我试过了:
app.get("/pp", function (req, res) {
PPOverTime.find()
.limit(30)
.sort({ _id: -1 }, function (error, documents) {
res.send(documents);
});
});
但这会产生错误,因为排序函数只能接受一个参数。我想更一般地说,如果我在 find() 调用上运行多个函数,我该如何异步执行此操作?谢谢。
【问题讨论】:
标签: javascript mongodb express mongoose