我在编写用于从mongoDB集合中获取最新N条记录的回调时遇到麻烦。我正在创建一个名为/ pp的Express路由,该路由将返回数据库中的内容。我曾经只返回其中的所有内容,所以像这样:
$('#appended').on('input', '.amount', function(){
var amount = parseFloat($(this).val());
var total = parseFloat($('#total').text())
var new_total = amount+total;
$('#total').text(new_total)
})
(PPovertime是我的收藏的名称)
但是我现在想将最后N条记录放入数据库中,根据上面链接的Stack Overflow帖子,这是通过“ db.foo.find()。sort({_ id:-1})。limit完成的(30)”,例如最后30个条目。
那么我应该在哪里放置回调函数以返回响应?我尝试过:
app.get("/pp", function (req, res) {
PPOverTime.find({}, function (error, documents) {
res.send(documents);
});
});
但是这会导致错误,因为sort函数只能接受一个参数。我想更一般地说,如果我要在find()调用上运行多个函数,该如何异步执行此操作?谢谢。
答案 0 :(得分:0)
你可以试试吗?
app.get("/pp", function (req, res) {
PPOverTime.find()
.limit(30)
.sort({ _id: -1 })
.then(results => {
console.log(results)
})
.catch(error => console.error(error))
}
答案 1 :(得分:0)
谢谢大家,这是我的做法。
npm install --save bootstrap jquery popper.js