首页 > 代码库 > MongoDB学习笔记<三>

MongoDB学习笔记<三>

继续学习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学习笔记<三>