Mongoose / MongoDB – 删除和插入为一个事务

我想删除mongo集合中的某些文档集,并插入新的logging,如果插入失败,我想回滚删除。 基本上,它既可以是两个也可以不是。 有人知道什么是最好的办法。 我正在使用mongoose和nodejs。

尝试使用承诺。 插入一个字段到您的架构,如isDeleted。 当你删除某个文件时,将其设置为true,并在删除成功的情况下,如果文件成功插入,则永久删除该logging。

喜欢这个

db.collection.findOneAndUpdate(query) .exec() .then( // write your insert logic here db.collection.insert(query) .exec() .then() .catch( //if anything goes wrong set isDeleted //to false again. ) ) .catch() 

我会添加一个“隐藏”标志,然后设置标志为真,在一些logging插入新的,然后根据插入失败或成功删除隐藏的对象或取消隐藏