更新文档
语法:
命令参数
返回值:
更新成功: 返回WriterResult({“nUpdated”:n})对象
更新失败: 返回结果中会包含WriterResult.writeConcernError
修改一条简单文档
1. 插入
2. 单值修改
3. 查看
4. 数值修改(加法)
5. 数值修改(乘法)
6. 键名修改
7. 删除字段
8. 修改最小值(比较值和当前值比较大小)
9. 修改最大值
10. 更新当前文档时间字段
插入
更新
修改一条文档里的数组和嵌套文档
对文档里面的子文档进行修改,可以用过Key.SubKey的组合来实现子文档字段对应值的修改
对于数组值的修改,可以通过Key.Number的方式指定修改数组值
1. 插入
2. 修改
引用数组或嵌套文档对象时,都需要加” ”号
查看
多文档修改
同时修改所有符合条件的文档记录,使用multi选项
更新后的数据
增加文档字段
update中把upsert设置为true,可以修改和增加文档的字段,甚至实现insert命令功能
查看
自定义写确认级别
1. writeConcern选项为update修改数据异常时,提供出错处理机制的
2. 对于insert、update类似的命令,有时提供出错处理机制非常重要,除非所写入数据不重要,允许丢失、写错现象的存在
collation参数的使用
占位符!
3个新的修改简化命令
MongoDB在3.2开始提供新的经过简化的3种修改命令
- db.collection.updateOne()。与update()唯一的区别是命令语法里少了一个multi:<boolean>选项,也就是updateOne()只适用于符合条件的一条文档的修改任务
- db.collection.updateMany()。与update()唯一的区别是命令语法里少了一个multi:<boolean>选项,也就是updateOne()只适用于符合条件的多条文档的修改任务
- db.collection.replaceOne()。与update()的区别有两处,一个没有multi:<boolean>选项,另外一个在第二个参数(update的<update>)里不能有更新操作符(如: $set、$inc、$mul等)
正确案例: