Advertisement

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

阅读量:

本文将深入剖析批量操作的核心知识。具体涉及insert\_oneinsert\_manydelete\_onedelete\_manyreplace\_oneupdate\_one以及update\_many七个功能模块。

批量提交的API在一次方法调用中会被服务器接收一个操作序列。当您设置ordered参数时,从而保证操作执行的顺序。

批量设置方法有三个参数:第一是一个操作列表项;第二是布尔类型的有序参数,默认设置为true;第三个是相关配置参数,默认设置为集合形式的配置。

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

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)
    
    
    
    
    代码解释

批量操作的学习到此结束

全部评论 (0)

还没有任何评论哟~