Ruby操作MongoDB(进阶九)-批量操作Bulk Operations

时间:2021-10-15 00:52:08

   本篇文章主要讲解批量操作的相关知识。主要会讲解下面的方法的使用insert_one,insert_many,delete_one,delete_many,replace_one,update_one,update_many七个方法。

   批量写入的API在一次方法调用中会想服务器发送一个操作的列表。如果你设定了ordered参数,就可以确保你传递的操作的执行顺序。

   批量写方法有三个参数:第一是一个操作列表,第二是boolean类型的ordered参数,默认值是true;第三个是写相关参数,默认为集合写相关。

   下面展示的是有效的写操作:

  1. insert_one方法

{:insert_one=>{:x=>1}}

2. insert_many方法

{:insert_many=>[{:x=>1},{:x=>2}]}

3. delete_one方法

{:delete_one=>{:filter=>{:x=>1}}}

4. delete_many方法

{:delete_many=>{:filter=>{:x=>1}}}

5. replace_one方法

{:replace_one=>{:filter=>{:x=>1}},                :replacement={:x=>2},                :upsert=>true #可选参数,默认为false                }

6. update_one方法

{:update_one=>{:filter=>{:x=>1},               :update=>{'$set'=>{:x=>2}},               :upsert=>true}}

7. update_many方法

{:update_many=>{:filter=>{:x=>1},               :update=>{'$set'=>{:x=>2}},               :upsert=>true}}

下面的实例展示的是如何将操作传递到批量写入方法中

coll=client['documents']coll.bulk_write([{:insert_one=>{:x=>1}},                 {:update_one=>{:filter=>{:x=>1},                                :update=>{'$set'=>{:x=>2}}}                 },                 {:replace_one=>{:filter=>{:x=>2},                                 :replacement=>{:x=>3}                                 }}                             ],:order=>true)

批量操作的学习到此结束

本文出自 “techFuture” 博客,谢绝转载!