MongoDB:15-MongoDB- $isolate

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB:15-MongoDB- $isolate


  • $isolate操作符可以对多个文档的修改提供隔离性。



  1. 针对其他线程的并发写操作,$isolate保证了提交前其他线程无法修改对应的文档。
  2. 针对其他线程的读操作,$isolate保证了其他线程读取不到未提交的数据。




  1. 官网解释:
  2. Prevents a write operation that affects multiple documents
  3. from yielding to other reads or writes once the first document is written.
  4. By using the $isolated option, you can ensure that
  5. no client sees the changes until the operation completes or errors out.


  • 但是$isolate有验证的性能问题,因为这种情况下线程持有锁的时间较长,严重的影响mongo的并发性。
  • 注意:



  1. The $isolated isolation operator
  2. does not provide “all-or-nothing” atomicity for write operations.
  3. 【另外,$isolate也无法保证多个文档修改的一致性(all-or-nothing),
  4. $isolate失败是可能只修改了部分文档。】
  1. $isolated 没有事件回滚机制,即时在操作过程中报错,已经修改的不会出现回滚.

  1. $isolated does not work with sharded(分片) clusters.



  • 例如:



  1. db.user.update(
  2.    { _id : 1.0 , $isolated : 1 },
  3.    { $inc : { age : 2 } },
  4.    { multi: true }
  5. )
  6. Without the $isolated operator,
  7. the multi-update operation will allow other operations
  8. to interleave with its update of the matched documents.
  9. $atomic:Deprecated since version 2.2: The $isolated operator replaces $atomic.


参考来源:https://docs.mongodb.com/manual/reference/operator/update/isolated/



相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
2月前
|
SQL NoSQL 安全
MongoDB命令汇总
这篇文章提供了一个MongoDB命令的汇总,包括数据库操作、DDL和DML命令、安全管理、数据备份恢复、远程连接管理和聚合操作等。
35 2
|
6月前
|
存储 缓存 NoSQL
MongoDB详解(三)——MongoDB集群
MongoDB详解(三)——MongoDB集群
95 4
|
NoSQL MongoDB 数据库
【mongo 系列】mongodb 学习九,MongoDB 主从集群 2
继续咱们 mongodb 集群的学习和分享 上次分享了 mongodb 主从集群的同步机制(oplog),心跳机制,这次我们继续看看选举机
126 0
|
6月前
|
NoSQL MongoDB 数据库
MongoDB 命令
MongoDB 命令
87 0
|
存储 NoSQL 网络协议
【mongo 系列】mongodb 学习八,MongoDB 主从集群 1
说到集群,生产环境中很多服务都会进行集群部署,那么 mongodb 的集群都有哪些知识点需要掌握呢
166 0
|
存储 NoSQL MongoDB
【mongo 系列】mongodb 学习十,MongoDB 分片集群
之前说到了主从集群,关于主从集群的搭建以及细节后面会再次分享,这次我们先初步来看看 分片集群
148 0
|
消息中间件 分布式计算 NoSQL
MongoDB适用场景
MongoDB适用场景
|
SQL JSON NoSQL
老去的MongoDB,未来在哪里?
老去的MongoDB,未来在哪里?
224 0
|
NoSQL Shell MongoDB
启动 MongoDB 服务
启动 MongoDB 服务
317 0
|
NoSQL Java Unix
MongoDB:1-MongoDB和Robomongo安装
MongoDB:1-MongoDB和Robomongo安装
208 0
MongoDB:1-MongoDB和Robomongo安装