检索最新的条目,然后使用MongoDB和Mongoose立即删除它?

时间:2016-08-14 15:14:51

标签: node.js mongodb mongoose

请原谅我的无知,但我更像是一名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});
      });
    });

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);
    });
});