Rails mongoid 数据库如何使用 transction?

jky · 2014年04月19日 · 最后由 night_song 回复于 2014年04月20日 · 2972 次阅读

mongoid 数据库如何使用 transction 进行事务的处理?请大侠赐教。ActiveRecord::Base 是可以使用 transction 进行处理的。

没有,不行。

#1 楼 @Rei 如果要用有其他办法么?

不支持,ActiveRecord::Base#transction 本质上还是调用数据库的事务功能,MongoDB 不支持的话 Rails 也不支持

楼主觉得重发一帖 Mongodb 就能支持事务了?http://ruby-china.org/topics/18521

#3 楼 @swordray 我用的 mongoid 数据库,在调用类里的实例方法方法时 ActiveRecord::Base.transction {...}这样是可以的,但是直接 Class.transction {...}却不行。

#4 楼 @Rei 不是这个意思!之前我还不知道 mongoid 不支持 transction

单文档具备原子性

把 transaction 牵涉到的所有数据放到同一个文档中, 用原子操作就可以了, 如果没法做到, 请不要用 mongodb. 或者自己用文件锁实现逻辑事务也可以. 如果部署到多台机器, 那你可以在一个挂载的公共磁盘上锁... 最后还是直接用关系数据库方便...

需要 登录 后方可回复, 如果你还没有账号请 注册新账号