MongoDB笔记三——更新操作
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,更新操作和查询操作博大精深。需要好好理解。1、强硬的文档替换式更新操作2、主键冲突的时候会报错并且停止更新操作因为是强硬替换当替换的文档和已有文档ID冲突的时候则系统会报错3、insertOrUpda
千家信息网最后更新 2026年11月02日MongoDB笔记三——更新操作更新操作和查询操作博大精深。需要好好理解。1、强硬的文档替换式更新操作2、主键冲突的时候会报错并且停止更新操作因为是强硬替换当替换的文档和已有文档ID冲突的时候则系统会报错
3、insertOrUpdate操作目的:查询器查出来数据就执行更新操作,查不出来就替换操作
做法:db.[documentName].update({查询器},{修改器},true)
4、批量更新操作默认情况当查询器查询出多条数据的时候默认就修改第一条数据如何实现批量修改
5、使用修改器来完成局部更新操作
6、$addToSet和$each结合完成批量数值更新8、runCommand函数和findAndModify函数
3、insertOrUpdate操作目的:查询器查出来数据就执行更新操作,查不出来就替换操作
做法:db.[documentName].update({查询器},{修改器},true)
4、批量更新操作默认情况当查询器查询出多条数据的时候默认就修改第一条数据如何实现批量修改
5、使用修改器来完成局部更新操作
| 名称 | 语法 | 案例 | 备注说明 |
| $set | {$set:{field:value}} | {$set:{name:"uspcat"}} | 它用来指定一个键值对,如果存在键就进行修改不存在则进行添加. |
| $inc | {$inc:{field:value}} | {$inc:{"count":1}} | 只是使用与数字类型,他可以为指定的键对应的数字类型的数值进行加减操作. |
| $unset | {$unset:{filed:1}} | { $unset : { "name":1 } | 他的用法很简单,就是删除指定的键 |
| $push | { $push : { field : value } } | { $push : { books:"JS"} | 1.如果指定的键是数组增追加新的数值2.如果指定的键不是数组则中断当前操作Cannot apply $push/$pushAll modifier to non-array3.如果不存在指定的键则创建数组类型的键值对 |
| $pushAll | { $pushAll : { field : array } } | { $push : { books:["EXTJS","JS"]} | 用法和$push相似他可以体谅添加数组数据 |
| $addToSet | { $addToSet: { field : value } } | { $addToSet: { books:"JS"} | 目标数组存在此项则不操作,不存在此项则加进去 |
| $pop | {$pop:{field: value}} | {$pop:{name:1}} {$pop:{name:-1}} | 从指定数组删除一个值1删除最后一个数值,-1删除第一个数值 |
| $pull | {$pull:{filed:value}} | {$pull:{"book":"JS"}} | 删除一个被指定的值 |
| $pullAll | {$pullAll:{filed:array}} | {$pullAll:{"name":["JS","JAVA"]}} | 一次性删除多个指定的数值 |
| $ | { $push : { field : value } } | { $push : { books:"JS"} | 1.数组定位器,如果数组有多个数值我们只想对其中一部分进行操作我们就要用到定位器($)例子:例如有文档{name:"YFC",age:27,books:[{type:'JS',name:"EXTJS4"},{type:"JS",name:"JQUERY"},{type:"DB",name:"MONGODB"}]}我们要把type等于JS的文档增加一个相同的作者author是USPCAT办法:db.text.update({"books.type":"JS"},{$set:{"books.$.author":"USPCAT"}}) |
6、$addToSet和$each结合完成批量数值更新8、runCommand函数和findAndModify函数
runCommand可以执行mongoDB中的特殊函数 findAndModify就是特殊函数之一他的用于是返回update或remove后的文档 runCommand({"findAndModify":"processes", query:{查询器}, sort{排序}, new:true update:{更新器}, remove:true }).value ps = db.runCommand({ "findAndModify":"persons", "query":{"name":"text"}, "update":{"$set":{"email":"1221"}}, "new":true}).valuedo_something(ps)http://www.cppblog.com/byc/archive/2011/07/15/151063.aspx
更新
数组
数值
文档
查询
函数
数据
查询器
时候
类型
强硬
特殊
修改器
多个
定位器
就是
数字
会报
冲突
定位
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网金融科技
有格互联网科技
科技互联网企业
新华互联网科技学校
科技互联网项目
互联网 科技创新
礼当家互联网科技
互联网科技的英文
成都互联网科技公司
深圳前海聚择互联网科技有限公司
字节跳动和互联网科技
互联网还是高科技吗
银川新华互联网科技学校联系电话
互联网科技人工智能实验室
威龙国际互联网科技公司
互联网第三次科技革命特征
上海同邻互联网科技有限公司规模
世界互联网科技成果奖
兰石爱特工业互联网科技分公司
株洲百竞科技的互联网营销顾问
中资互联网科技
互联网科技logo设计
苏州大垚互联网科技
互联网公司会议桌创意科技软装饰
云创客互联网科技公司
互联网科技中介
科技互联网大厂
互联网科技商业
深圳无忧互联网科技
富国互联网金融科技混合基金