修改数据
mysql修改数据:update tablename set 修改后的字段名和指 where ……
1、MongoDB修改:
命令:db.collectionName.update(query,update,upsert,multi)
功能:
修改一个文档
参数:
query:
筛选要修改的文档,相当于mysql中where子句,用法同查找
update:
将数据更新为什么内容 相当于set操作
需要使用修改器操作符
upsert:
布尔值,默认为false,表示如果query的文档不存在,则无法修改
设置为true,表示如果query的文档不存在,则根据query和update参数插入新的文档
multi:
bool值,默认为false,表示如果有多条符合筛选条件的文档,则只修改第一条
若为true,表示修改所有符合条件的文档
示例:
# (前两个参数)将阿红年龄修改为24
db.class0.update({name:'阿红'},{$set:{age:24}})
# (第三个参数示例) 如果筛选数据不存在则插入一个新的文档
db.class0.update({name:'啊'},{$set:{age:18,sex:'w'}},true)
# (第四个参数示例) 可以修改多条匹配到的文档
db.class0.update({sex:'w'},{$set:{age:18}},false,true)
2、修改器操作符:
1、$set
功能:1、修改一个域的值
2、增加一个域
示例:
# 增加一个sex属性
db.class0.update.({name:'阿红'},{$set:{sex:'w'}})
2、$unset
功能:删除一个域
示例:
# 删除文档的sex和age域(后面数字习惯写1或0)
db.class0.update({name:'悟空'},{$unset:{sex:0,age:0}})
3、$rename
功能:修改域的名称
示例:
# 修改sex域名称为gender,必须有第四个参数,否则修改一文档的域名称
db.class0.update({},{$rename:{sex:'gender'}},false,true)
4、$setOnInsert
功能:如果update操作插入新的文档,则丰富插入内容
示例:
#无阿华的文档,则插入并补充setOnInsert内容,如果有阿华的文档则仅设置年龄为21
db.class0.update({name:'阿华'},{$set:{age:21},$setOnInsert:{sex:'m',tel:'123456'}},true)
5、$inc
功能:加减修改器
对某个与的值进行加减
值必须为数值
示例:
# 所有年龄小于18的,年龄减2
db.class0.update({age:{$lt:18}},{$inc:{age:-2}},false,true)
注:
$inc 可加减 整数 负数 小数 都可以
6、$mul
功能:乘法修改器
示例:
# 阿华年龄乘2
db.class0.update({name:'阿华'},{$mul:{age:2}})
注:
$mul可乘 整数 负数 小数 都可以
7、$min
功能:设置最小值
如果筛选的文档指定的域值小于min值则不修改,如果大于min值则改为min值
示例:
db.class0.update({},{$min:{age:19}},false,true)
8、$max
功能:设定最大值
如果筛选的文档指定的域值大于max值则不修改,如果小于max值则改为max值
示例: