Ruby操作MongoDB(進階九)-批量操作Bulk Operations

   本篇文章主要講解批量操作的相關知識。主要會講解下面的方法的使用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)

批量操作的學習到此結束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章