相关文章推荐
慷慨的橙子  ·  11 个最佳的 Python ...·  6 月前    · 
温文尔雅的书包  ·  Android Jetpack ...·  7 月前    · 


MongoDB数据库中update的修改器整理与总结

1. $set修改器

用途:用来修改一条指定数据的指定字段值(key)
	1.基本语法示例:
	db.user.update({"name":"MinJie"},{"$set":{age:21}})
	2.json嵌套的修改
	db.user.update({"name":"MinJie"},{"$set":{"slill.skillThree":"PS"}})
	3.数组的定位修改
	db.user.update({"name":"MinJie"},{"$set":{"interest.2":"game"}})
	4.完全替换数据
	db.user.update({"name":"MinJie"},{"interest.2":"game"})

2. $unset修改器

用途:删除一条指定数据的指定字段值(key)
	1.基本语法示例:
	db.user.update({"name":"MinJie"},{$unset:{"age":''}})

3. $inc修改器

用途:可对指定数据的指定number类型的字段值进行计算
	1.基本语法示例:
	db.user.update({"name":"MinJie"},{$inc:{"age":-2}}) //对MinJIE的age进行减2

4. multi选项

用途:对多条数据进行修改
	注释:multi有ture和false两个值,true代表全部修改,false代表只修改一个(默认值)
	1.基本语法示例:
	db.user.update({},{$set:{job:[]}},{multi:true})  //向user数据表中添加一个数组类型的job字段

5. upsert选项

用途:在数据表中找不到值时,直接插入这条数据
	注释:upsert有ture和false两个值,true代表没有就添加,false代表没有不添加(默认值)
	1.基本语法示例:
	db.user.update({name:'xiaoWang'},{$set:{age:20}},{upsert:true})  //在user数据表中查找name为xiaoWang的数据,如果查到了不做任何操作,如果没查到则添加改数据

6. $push修改器

用途:向一条指定的数据中指定的字段追加数组/内嵌文档
	1.向数组中追加值:
	db.user.update({name:"xiaoWang"},{$push:{interest:"draw"}})  //向name为xiaoWang的数据的interest字段追加一个draw值
	2.向内嵌文档中追加值:
	db.user.update({name:'MinJie'},{$push:{"skill.skillFour":'draw'}})

7. $ne修改器

用途:检查一个值是否存在,如果不存在再就执行操作,存在就不执行(没有则修改,有则不修改。)
	1.基本语法示例:
	db.user.update({name:"xiaoWang","interest":{$ne:"playgame"}},{$push:{interest:"playgame"}})  //如果name为xiaoWang的数据中的interest字段中含有playgame则不执行后面的追加语句,如果有则执行后面的追加语句向interest中追加一个playgame值

8. $addToSet修改器

用途:$ne的升级版本,检查一个值是否存在,如果不存在再就执行操作,存在就不执行(没有则修改,有则不修改。)
	1.基本语法示例:
	db.user.update({name:"xiaoWang"},{$addToSet:{interest:"playgame"}})  //如果name为xiaoWang的数据中的interest字段中含有playgame则不追加,如果有则向interest中追加一个playgame值

9. $each修改器

用途:批量追加
	1.基本语法示例:
	var newInterset=["Sing","Dance","Code"];
	db.user.update({name:"xiaoWang"},{$addToSet:{interest:{$each:newInterset}}})  //如果name为xiaoWang的数据中的interest字段中含有newInterset中的任意一个值则不追加,如果有则向interest中追加一个newInterset中的所有值

10. $pop修改器

用途:删除数组值
	注释:$pop只删除一次,且并不是删除所有数组中的值。只有两个选项,一个是1(从数组末端进行删除)和-1(从数组开端进行删除)。
	1.基本语法示例:
	db.user.update({name:"xiaoWang"},{$pop:{interest:1}}) // 删除xiaoWang数据中interest中的最后一个数据值