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中的最后一个数据值