MongoDB:15-MongoDB- $isolate

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: 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
目录
相关文章
|
3月前
|
存储 缓存 NoSQL
MongoDB详解(三)——MongoDB集群
MongoDB详解(三)——MongoDB集群
36 4
|
5月前
|
NoSQL MongoDB 数据库
MongoDB 命令
MongoDB 命令
|
5月前
|
存储 NoSQL MongoDB
关于MongoDB
关于MongoDB
87 0
|
10月前
|
存储 SQL NoSQL
mongoDB(二)
mongoDB
69 0
|
存储 缓存 NoSQL
MongoDB 使用介绍
MongoDB 是由 C++ 语言编写的,是一个基于分布式文件存储的非关系型开源数据库系统。其优势在于可以存放海量数据,具备强大的查询功能,是一个独立的面向集合文档形式的。
293 0
MongoDB 使用介绍
|
NoSQL Java Unix
MongoDB:1-MongoDB和Robomongo安装
MongoDB:1-MongoDB和Robomongo安装
177 0
MongoDB:1-MongoDB和Robomongo安装
|
NoSQL MongoDB 数据安全/隐私保护
Mongodb日常使用命令
mongodb,权限
1026 0
|
NoSQL 测试技术 数据库

热门文章

最新文章