继续学习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"}})
切记:修改器是放在最外面,后面要提到的查询器是放到内层的!