在2.6中有一种新的操作称为批量操作.它类似于我的事务 - 用户可以指定一组写入并随后执行它们,如下所述
var bulk = db.users.initializeOrderedBulkOp();
bulk.insert( { user: "abc123", status: "A", points: 0 } );
bulk.insert( { user: "ijk123", status: "A", points: 0 } );
bulk.insert( { user: "mop123", status: "P", points: 0 } );
bulk.find( { status: "D" } ).remove();
bulk.find( { status: "P" } ).update( { $set: { comment: "Pending" } } );
bulk.execute();
Run Code Online (Sandbox Code Playgroud)
批量操作是原子的吗?潜在消费者是否会经历不可重复或幻读?
Dis*_*ser 12
来自mongo docs:单个文档上的操作对于MongoDB数据库始终是原子操作,但是,涉及多个文档的操作(通常称为"多文档事务")不是原子操作.
批量写入操作可以是有序的也可以是无序的.通过有序的操作列表,MongoDB以串行方式执行操作.如果在处理其中一个写操作期间发生错误,MongoDB将返回without processing any remaining write operations in the list.
http://docs.mongodb.org/manual/core/bulk-write-operations/
结论:批量操作中没有事务
| 归档时间: |
|
| 查看次数: |
1499 次 |
| 最近记录: |