码迷,mamicode.com
首页 > 其他好文 > 详细

数据更新:修改器

时间:2017-10-05 23:38:54      阅读:577      评论:0      收藏:0      [点我收藏+]

标签:数组   shc   数字   设置   个数   大神   blank   mongod   lan   

1.1.1数据更新操作

对于MongoDB而言,数据的更新基本上是一件很麻烦的事。如果在实际的工作之中,真的具有此类的操作支持,那么最好的做法,在MongoDB里面对于数据的更新操作提供了两类函数save(),updata()
1.1.1.1函数的基本使用
如果要修改数据,最直接的使用函数就是update()函数,但是这个函数的语法要求很麻烦
语法:db.集合.update(更新条件,新的对象数据(更新操作符),upsert,multi)
upsert:如果要更新的数据不存在,则增加一条新的内容(true为增加,false为不增加)
multi  :表示是否只更新满足条件的第一行记录,如果设置为false,只更新第一条,如果是true则全更新
范例:将年龄是19岁的人的成绩都更新为100分
更新一条数据
技术分享
范例:更新不存在的数据

技术分享

技术分享

由于没有年龄是30岁的学生信息,所以此时相当于进行了数据的创建。

那么除了updata()函数之外,还提供了一个sava()函数,这个函数的功能与更新不存在的内容相似

范例:使用save操作

技术分享

技术分享

由于此时对应的id数据存在了,所以就变成了更新操作,但是如果要保存的数据不存在(不能有id),就变为了增加操作

尽量不用save,用updata。

 

1.1.1.1修改器

对MongoDB数据库而言,数据的修改会牵扯到内容的变更,结构的变更(包含有数组),所以在进行MongoDB设计的时候,就提供有一系列修改器的应用。那么像之前使用的"$set"就是一个修改器。

1. $inc:主要针对于一个数字字段,增加某个数字字段的数据内容。

语法:{"$inc":{成员:内容}}

范例:将所有年龄为19岁的学生成绩一律减少30分

技术分享

 

 
 
 
技术分享

 

2. $set :进行内容的重新设置
语法:{"$set":{"成员","新内容"}}
范例:将年龄是20岁的人的成绩修改为89

技术分享

3. $unset :删除某个成员的内容

语法:{"$unset":{"成员":1}}

范例:删除"张三"的年龄与成绩信息

技术分享

执行之后指定的成员内容就消失了

4. $push :相当于将内容追加到指定的成员之中(基本上是数组):

范例:向"张三"添加课程信息(此时张三信息下没有course)

技术分享

范例:向谷大神-E添加课程 美术

   技术分享

$push就是进行数组数据的添加操作使用的,如果没有数组则进行一个新的数组创建,如果有则进行内容的追加

5.$pushAll 与$push 是类似的,可以一次追加多个内容到数组里面

  语法:{"$pushAll":{成员:数组内容}}

范例:向"王五"的信息里面添加多个课程内容

技术分享

 

数据更新:修改器

标签:数组   shc   数字   设置   个数   大神   blank   mongod   lan   

原文地址:http://www.cnblogs.com/invisible2/p/7630230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!