我知道mongodb 4.0+ 已经开始支持事务了。 但是现在公司要求使用meteor进行开发, 而meteor使用的mongodb是3.6.x版本的。 不能原生支持事务。 我也在网上查阅了很多实现mongodb事务的做法。 推荐的比较多的做法是二次提交法, 也就是用一个集合来存储事务。 给每一个事务一个state, 比如有什么初始化啊,等待中啊, 完结什么的。 我就疑问, 要是遇到服务器突然断电什么的。 比如事务它现在只更新到了等待中。那我下一次服务器重启的时候这个数据存的也是等待中。 这是不是意味着我要定时去检测这个事务集合, 找出其state异常的事务进行回滚啊或者撤销什么的处理。 比如说,每三十分钟检测一次事务集合? 每一天检测一次事务集合?
说的清晰一点, 就是在这一步一步的操作中, 我怎么去发现这个流程出现了异常?