博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB 4.0 多文档事务相关
阅读量:7054 次
发布时间:2019-06-28

本文共 983 字,大约阅读时间需要 3 分钟。

在MongoDB4.0版本之前只支持单文档事务操作,在4.0版本之后开始支持多文档事务操作

事务和副本集

在MongoDB中多文档事务操作只支持副本集的操作,关于在分片上的事务操作会在4.2版本中引入

存储引擎

在MongoDB中只有 WiredTiger 存储引擎才支持多文档事务操作,在 in-memoryMMAPv1存储引擎 中不支持多文档事务操作

事务和操作

  • 事务支持在已经存在的collections中进行 CURD 操作,collections可以在不同的数据库中
  • configadmin collections和local数据库中不支持读写事务
  • system.* collections中也不支持事务
  • 事务支持计划查询 如 explain
  • 在事务之外创建的 cursors ,在事务中不能进行 getMore 操作
  • 在事务中创建的 cursors,在事务外也不能进行 getMore 操作

支持多文档事务的操作

方法 命令 备注
不包含:
对于upsert,只对已经存在的 collection有效
对 已经存在的collection有效
如果是 insert 操作,只有 collection 存在时才有效
upsert, 只对已经存在的 collection有效
对于upsert,只对已经存在的 collection有效
如果是 insert 操作,只有 collection 存在时才有效

Count操作

为了在事务中使用count操作,请在 aggregation stage中使用 使用 操作

信息的操作

查询信息相关的操作 , ,和其他相关的辅助方法,都可以在事务中操作,但是这些方法不能作为事务中的第一个操作

限制的操作

下面的操作不能再多文档事务中操作

  • 对于影响数据库 catalog的操作,如对 collection进行创建、删除索引等, 、 命令和其他辅助的方法
  • Non-CRUDnon-information操作不支持多文档事务,如 等相关操作

事务和 mongo Shell

mongo Shell中的相关的事务方法

原子性

MongoDB中的多文档事务也是原子性的

事务和锁

默认情况下,事务等待5毫秒以获取事务中操作所需的锁。如果事务不能在5毫秒内获取其所需的锁,则事务中止。 可以使用 调整这个时间

转载地址:http://illol.baihongyu.com/

你可能感兴趣的文章
初学JDBC,最简单示例
查看>>
strftime 日期时间格式化
查看>>
exe4j的使用
查看>>
Java单链表、双端链表、有序链表实现
查看>>
hadoop配置
查看>>
031 分布式中,zookeeper的部署
查看>>
persits.jpeg 水印组件
查看>>
Android IntentService完全解析 当Service遇到Handler
查看>>
单例模式
查看>>
Android资源(图片)命名规范
查看>>
java 大文件上传 断点续传 完整版实例 (Socket、IO流)
查看>>
LeetCode: Merge Two Sorted Lists 解题报告
查看>>
海报:Silverlight 1.1
查看>>
[cpp] I/O操作符号返回数值问题
查看>>
Vue -- Mixin
查看>>
使用HeadlessChrome做单页应用SEO
查看>>
[iOS]Core Data浅析二 -- 转换实体(Entity)为模型对象
查看>>
thinkpad 系列恢复F1-F12原始功能,切换ctrl和fn的位置
查看>>
JavaScript算法 ,Python算法,Go算法,java算法,系列之归并排序
查看>>
基于 React 的前端项目开发总结
查看>>