標籤:mongodb tokumx nosql
繼續學習MongoDB,這次主要的學習內容是使用修改器來完成局部的更新操作
1.$set
用來指定一個鍵值對,如果存在鍵就進行修改,不存在就進行添加
db.person.update({"name":"xiaoming"},{$set:{"age":27}})如果age鍵存在,則把age鍵的值變成27,如果不存在,則在文檔中添加age鍵,值為27
2.$inc
只可與數字類型一起使用,它可以把指定的鍵的數值進行加減指定大小的數值
db.person.update({"age":27},{$inc:{"age":1}})這個操作之後age鍵會進行加1
3.$unset
刪除指定的鍵
db.person.update({"age":27},{$unset:{"age":1}})
4.$push
-如果指定的鍵是數組,則增加新的數值.
-如果指定的鍵不是數組,則中斷當前操作.
-如果不存在指定的鍵,則建立數群組類型的鍵值對
db.person.update({"name":"xiaoming"},{$push:{books:"English"})
如果books這個數組存在,則會被加入新的值English
如果books不存在,則會建立books數組,並添加值English
如果books這個鍵已經存在並且不是數組,則會報錯
5.$pushAll
可以批量的往數組中添加資料
db.person.uipdate({"name":"xiaoming"},{$pushAll:["Math","Chinese","PE"]})
6.addToSet
目標數組存在此項,則不操作,不存在,則把此項加進去
db.person.update({"name":"xiaoming"},{$addToSet:{books:"Math"}})
7.$pop
從指定的數組中刪除一個值,1刪除最後一個值,-1刪除第一個值
db.person.update({"name":"xiaoming"},{$pop:{books:-1}})
8.$pull
刪除一個指定的數值
db.person.update({"name":"xiaoming"},{$pull:{books:"English"}})
9.$pullAll
一次性刪除多個指定的數值
db.person.update({"name":"xiaoming"},{$pullAll:{books:["English","Math"]}})
10.$
數組定位器,如果數組有多個數值,我們只想對其中的一部分進行操作,就要用到定位器$
例如:
如果有文檔{"name":"xiaoming",books:[{"type":"JS","name":"EXTJS4"},{"type":"JS","name":"JQUERY"}},{"type":"DB","name":" MongoDB"}}]}
想要把type等於JS的文檔增加一個相同的作者author是xiaohua
db.person.update({"books.type":"JS"},{$set:{"books.$.author":"xiaohua"}})
切記:修改器是放在最外面,後面要提到的查詢器是放到內層的!
MongoDB學習筆記<三>