我在Ruby应用程序中使用以下代码(使用Sequel)在测试用例之间回滚数据库:
RSpec.configure do |config|
config.around(:each) do |example|
DB.transaction(:rollback=>:always, :auto_savepoint=>true){example.run}
end
end
我喜欢在我的Mongo测试中有类似的东西,但我只能找到一个manual process,它需要很多关于我想要回滚的数据的具体信息。我喜欢更通用的东西,类似于上面的红宝石片段,它只会将数据库恢复到每个测试块之前的状态。
E.g:
// psuedocode
var db = mongoose.connect('test-db');
afterEach(function () {
db.rollback();
});
答案 0 :(得分:1)
截至2018年,Mongo 4和Mongoose 5.2支持交易
答案 1 :(得分:0)
MongoDB不支持事务(http://docs.mongodb.org/manual/faq/fundamentals/)。如果要使用事务,则必须使用其他数据库。大多数SQL数据库都支持事务。