本篇文章主要講解批量操作的相關知識。主要會講解下面的方法的使用insert_one,insert_many,delete_one,delete_many,replace_one,update_one,update_many七個方法。
批量寫入的API在一次方法調用中會想服務器發送一個操作的列表。如果你設定了ordered參數,就可以確保你傳遞的操作的執行順序。
批量寫方法有三個參數:第一是一個操作列表,第二是boolean類型的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)
批量操作的學習到此結束