请原谅我的无知,但我更像是一名C#开发人员。这是我的第一个NodeJS程序。我正在尝试编写一个程序,我的程序调用GET到我的node.js服务器。当服务器收到该请求时,我希望它从MongoDB发送最新的条目并立即删除它,以便它不能被重用。我希望这可以在服务器端完成。
以下是我的内容,
router.get('/', function(req, res, next) {
Todo.findOne({}, {}, { sort: { '_id' : -1 } }, function(err, post) {
res.json(post);
Todo.remove({_id: -1});
});
});
答案 0 :(得分:1)
考虑使用 findOneAndRemove()
API,这是一个发布mongodb findAndModify
删除命令的原子更新,因此始终会返回已删除的文档。使用sort
选项选择要删除的文档,因为查询将返回多个文档:
router.get('/', function(req, res, next) {
var query = {},
options = { "sort": { "_id": -1 } }; // or { "sort": "-_id" }
Todo.findOneAndRemove(query, options, function(err, post) {
if (err) console.error(err);
res.json(post);
});
});