mongo(八)Bulk Write Operations
来源:互联网 发布:linux开启端口监听 编辑:程序博客网 时间:2024/05/24 05:08
mongo支持客户端进行批量写操作,其基于单一集合。
mongo数据库允许应用程序指定用于批量写操作的可接受的等级。
mongo提供方法db.collection.bulkWrite()用于批量插入,修改,删除操作,当然每种操作也有其对应的批量操作方法,
如插入的insertMany()方法。
批量写的有序操作与无序操作:
A、对于有序操作的集合,mongo会串行的执行这些写操作。当集合中一个写操作执行失败时,mongo不会执行集合中剩余
的写操作,将直接返回。
B、对于无序的操作集合,mongo可以并行的执行这些写操作,但是不保证一定并行执行。当集合中某个写操作执行失败时
mongo不直接返回,继续执行集合中剩下的写操作。
C、对于分片集合来说,通常执行有序的写操作集合往往慢于无序的写操作集合,因为,执行有序写操作集合时,每个操作
的执行都要等其上一个操作执行完毕。
D、默认情况下,bulkWrite()执行有序的写操作集合,如果要指定执行无序的写操作集合,需将选项文档中的ordered域的
值设置为false。
bulkWrite()方法:
A、该方法支持的写操作:
insertOne,updateOne,updateMany,replaceOne,deleteOne,deleteMany
B、该方法接收文档数组类型参数。
bulkWrite()方法的原型:
db.collection.bulkWrite( [ <operation 1>, <operation 2>, ... ], { writeConcern : <document>, ordered : <boolean> })
bulkWrite()方法使用示例:
try { db.characters.bulkWrite( [ { insertOne : { "document" : { "_id" : 4, "char" : "Dithras", "class" : "barbarian", "lvl" : 4 } } }, { insertOne : { "document" : { "_id" : 5, "char" : "Taeln", "class" : "fighter", "lvl" : 3 } } }, { updateOne : { "filter" : { "char" : "Eldon" }, "update" : { $set : { "status" : "Critical Injury" } } } }, { deleteOne : { "filter" : { "char" : "Brisbane"} } }, { replaceOne : { "filter" : { "char" : "Meldane" }, "replacement" : { "char" : "Tanys", "class" : "oracle", "lvl" : 4 } } } ] );}catch (e) { print(e);}
批量插入到分片集合的策略:
A、Pre-Split the Collection:如果一个分片存储的集合是空的,那么这个集合仅有一个由某个分片持有的
初始化chunk(在某个分片上的分片键值的一段连续的范围),这样,mongo就就必须花费时间接收数据,创建
分chunk,并且把这些分离的chunk分配到可用的分片上。为了避免这部分性能开销,可以使用预先分离集合策
略。
B、Unordered Writes to mongos:为了提高在分片集群上的写操作性能,可以使用批量操作bulkWrite()的无序
操作行为(将其选项参数ordered设置为false).
- mongo(八)Bulk Write Operations
- C# Bulk Operations
- mongo bulk批量更新
- django-rest-framework Bulk operations
- Ruby操作MongoDB(进阶九)-批量操作Bulk Operations
- org.springframework.dao.InvalidDataAccessApiUsageException: Write operations
- (八)read和write函数的使用
- (详解)Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session
- mongo(四)Mongo Shell
- mongo(五)Mongo Insert
- mongo(六)Mongo Query
- mongo(七)Mongo Update
- bulk
- Write operations are not allowed in read-only mode
- Write operations are not allowed in read-only mode
- Write operations are not allowed in read-only mode
- Handling multiple pending socket read and write operations
- Write operations are not allowed in read-only mode
- cp: omitting directory”错误的解释和解决办法
- 485. Max Consecutive Ones
- SSM下整合netty使用队列进行文件传输demo
- 深入理解乐观锁与悲观锁
- ab测试
- mongo(八)Bulk Write Operations
- (4.3.2.20)在activity中的子线程中startActivity异常dispatchCancelPendingInputEvents()' on a null object referen
- iOS图片剪裁
- RF测试时的Deembedding是什么作用
- week9- Dynamic Programming-NO.377. Combination Sum IV
- Win10如何在局域网搭建FTP服务器?
- java继承extends
- HDU 5929(双端队列)
- 最少拦截系统