2020MongoDB基本命令-U操作(改)
基础
2020MongoDB基本命令-C操作(增)
2020MongoDB基本命令-R操作(查)
2020MongoDB基本命令-U操作(改)
2020MongoDB基本命令-C操作(删)
进阶
2020MongoDB进阶-排序、分页
2020MongoDB进阶-聚合查询
持续更新…
- 基础语法
db.集合名.update(条件,新数据,[是否新增,是否修改多条])
是否新增:条件匹配不到数据,则插入数据 ,true是插入,默认false
是否修改多条:将匹配的数据都修改,true是都修改,默认false是值修改一条
2.准备工作
//使用test2数据库
use test2
//给c2集合添加数据,无需创建c2集合,直接使用
for(var i=0;i<10;i++){ db.c2.insert({uname:"b"+i,age:i}); }
//查询数据
db.c2.find()
结果
{ “_id” : ObjectId(“5fc30eded3263166f5fd1b9f”), “uname” : “b0”, “age” : 0 }
{ “_id” : ObjectId(“5fc30eded3263166f5fd1ba0”), “uname” : “b1”, “age” : 1 }
{ “_id” : ObjectId(“5fc30eded3263166f5fd1ba1”), “uname” : “b2”, “age” : 2 }
{ “_id” : ObjectId(“5fc30eded3263166f5fd1ba2”), “uname” : “b3”, “age” : 3 }
{ “_id” : ObjectId(“5fc30eded3263166f5fd1ba3”), “uname” : “b4”, “age” : 4 }
{ “_id” : ObjectId(“5fc30eded3263166f5fd1ba4”), “uname” : “b5”, “age” : 5 }
{ “_id” : ObjectId(“5fc30eded3263166f5fd1ba5”), “uname” : “b6”, “age” : 6 }
{ “_id” : ObjectId(“5fc30eded3263166f5fd1ba6”), “uname” : “b7”, “age” : 7 }
{ “_id” : ObjectId(“5fc30eded3263166f5fd1ba7”), “uname” : “b8”, “age” : 8 }
{ “_id” : ObjectId(“5fc30eded3263166f5fd1ba8”), “uname” : “b9”, “age” : 9 }
- 如果我们直接修改,按下面语法,修改b1的uname为b10
db.c2.update({uname:"b3"},{uname:"b10"})
结果:我们只是把b3这一行替换了,肯定不对,所以我们需要引入修改器的概念
修改器
修改器 | 功能 |
---|---|
$inc | 递增 |
$rename | 重命名列 |
$set | 修改列值 |
$unset | 删除列 |
示例1.修改b4的值为b11
db.c2.update({uname:"b4"},{$set:{uname:"b10"}})
结果:修改成功
示例2:让b5的年龄增加3岁
db.c2.update({uname:"b5"},{$inc:{age:3}})
结果:
注意!!,如果是减的话,那么可以用{$inc:{age:-1}}
示例3:如何一次性修改多个数据
准备工作,插入一条数据
db.c2.insert({uname:"ppl",age:23,feature:"帅",money:0})
结果:成功插入数据
要求:姓名成小龙,年龄加1岁,把feature这个字段换成advantage,最后把money这个字段删除
db.c2.update({uname:"ppl"},{
$set:{uname:"小龙"},
$inc:{age:1},
$rename:{feature:"advantage"},
$unset:{money:true}
})
结果
示例4:最后两个参数的使用方法
准备工作 :插入一条并不存在的数据
db.c2.update({uname:"AAA"},{$set:{age:30}})
那么第三个参数的作用就出来了-找不到就直接插入改数据
db.c2.update({uname:"AAA"},{$set:{age:30}},true)
结果:
示例5:第四个参数的作用:修改多条数据
题目:将集合中所有用户的年龄改成20岁
db.c2.update({},{$set:{age:20}},false,true)
结果