python 操作mongoDB指令

來源:互聯網
上載者:User

標籤:src   mod   users   rip   jmx   pull   sso   water   class   

預設情況下,mongo的修改只會修改找出來的第一條資料,如果要修改查詢匹配的所有記錄,必須使用multi那個參數。

 

修改的操作符說明:

$inc 以給定的值增長某個欄位;

$set 替換給定的索引值;

$push 如果欄位是一個數組,將把給定的值添加到數組欄位內,如果不存在,將自動添加,如果欄位非數組,將報出錯誤提示;

$pushAll 跟push類似,只不過參數為數組;

$unset 刪除一個欄位

$addToSet 跟push類似,只不過如果值已經存在,則不會添加;

$pop 移除某個數組欄位的第一個值或最後一個值,根據1或-1區分;

$pull 如果欄位是一個數組,可以用這個操作符移除數組內滿足條件的值;

$pullAll 跟pull類似,只不過參數為數組;

$rename 修改欄位的名字;

 

執行個體:


 

  達到最終效果: users(collection)

 

 

[javascript] view plain copy 
  1. {  
  2.  _id : ObjectId("50897dbb9b96971d287202a9"),  
  3.  name : "Jane",  
  4.  age:20,  
  5.  likes : [ "tennis", "golf" ],  
  6.  registered : false,  
  7.  addr : {  
  8.    city : "Lyon",  
  9.    country : "France"   
  10.  }   
  11. }  


 

為了實踐update的不同命令,先插入基本

[javascript] view plain copy 
  1. db.users.insert({name:"Jane",age:10})  

 


db.users.update(query,obj,upsert,multi)  

參數分別為 query查詢條件{name:"Jane"} ; obj更改對象 ;upsert 更新還是插入(布爾值); multi(是否多行更新)

在命令中輸入 db.users.update 可以直接查看update函數的實現邏輯 

實際upsert可以為object 即{upsert:true,multi:true}

 

1、$inc  為某個欄位的增加指定的值 value=old+inc; 操作欄位不許為數字

 

[javascript] view plain copy 
  1. db.users.update({name:"Jane"},{$inc:{age:10}})  

 

 

2、$set 替換原有欄位值

[javascript] view plain copy 
  1. db.users.update({name:"Jane"},{$set:{age:20}})  

 

3、$push,$pushAll 將資料加入欄位數組中

 

 

[javascript] view plain copy 
  1. db.users.update({name:"Jane"},{$pushAll:{like:["golf"]}})  


 

 


 剩餘的指令都是一個道理 再次我就不寫了

 

最後還出現了一個問題,就是 addr欄位,如果我只給其添加了一個city : "Lyon",那麼county如果更新呢?

 

 

類似 ,addr欄位缺少一個county:"France",該如何添加呢?

問題先放那 我去查查資料 解決了再補上

python 操作mongoDB指令

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.