下次更新时间为:2020 年 1 月 1 日
课件和 Demo 地址
https://github.com/geektime-geekbang/geektime-mongodb-course
作者回复: 这个单文档事务叫法背后的逻辑:
关系型里面,用户表和用户电话是分开在两张表。当你需要新增一个新用户,你需要:
insert into USER
insert into PHONE
这两个DML需要放在事务范围内,保证两条数据(其实是一条,用户数据)要么一起成功写入,要么回滚。
在MongoDB里面,类似的操作变成了一个单文档操作:
db.user.insert({ name: "TJ",phone: ["1234"]})
这个操作里面其实相当于做了两个事情:1) 添加用户 2) 添加电话号码。这两个事情是有原子事务性的-要么一起成功,要么一起失败。
这个是mongo单文档事务的由来。