102update({key1: value1},{key2:value2}) //{key1: value1}是修改前的键值对 {key2:value2}修改后的键值对
查询一个x=2的数据
db.config_collection.find({x:2})
修改它的值为100
db.config_collection.update({x:2},{x:100})
再次查询x=2的值 结果没有这个值
查询x=100的值 存在并且_id 为1 表明修改成功
部分数据修改
添加一条数据到集合
db.config_collection.insert({x:101,y:100,z:100})
查询是否添加到
修改这条数据的x值为110 其他值不变
错误的方法
db.config_collection.update({x:101},{x:110}) //语句本身没错 错误的是你覆盖了y,z的值
$set:{key:value} 保持部分更新 字段中不更新的字段保持原样
正确方法
db.config_collection.update({x:110},{$set:{y:0}})
修改x=110的y值为0
查询
修改一条不存在的数据并添加这条数据 参数 true
查找一条不存在的数据 并且修改他
多文档更新
更新集合中所有x=102的所有数据
添加3条x=102的数据
查询x=102的数据
修改102的数据
查询102
只改了1条
多条修改
db.config_collection.update({x:102},{$set:{x:104}},false, true) //第一个参数是要修改的数据 ,第二个参数是修改后的值。($set{}避免覆盖别的数据) ,第三个参数 如果没有这个参数 不会创建新的, 第四个参数是否修改全部的数据
第三个参数:upsert值默认为false——未找到匹配时不插入新记录。(这里c:1已经存在)
第四个参数:multi——更新满足查询条件的多条记录。