位置: 编程技术 - 正文

MongoDB中文档的更新操作示例详解(mongodb document)

编辑:rootadmin

推荐整理分享MongoDB中文档的更新操作示例详解(mongodb document),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mongodb bi,mongodb项目使用说明,mongodb基本操作,mongodb 文档,mongodb中文手册,mongodb 文档,mongodb中文手册,mongodb docs,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

在MongoDB中,更新单个doc的操作是原子性的。默认情况下,如果一个update操作更新多个doc,那么对每个doc的更新是原子性的,但是对整个update 操作而言,不是原子性的,可能存在前面的doc更新成功,而后面的doc更新失败的情况。由于更新单个doc的操作是原子性的,如果两个更新同时发生,那么一个更新操作会阻塞另外一个,doc的最终结果值是由时间靠后的更新操作决定的。

我们在前面的文章中提到过文档的基本的增删改查操作,MongoDB中提供的增删改查的语法非常丰富,不清楚的朋友们可以参考这篇文章:

$push可以向已有数组末尾追加元素,要是不存在就创建一个数组,还是以我们的上面的book为例,假设book有一个字段为comments,是一个数组,表示对这个book的评论,我们可以使用如下命令添加一条评论:

此时不存在comments字段,系统会自动帮我们创建该字段,结果如下:

此时我们可以追加评论,如下:

结果如下:

如果想一次添加3条评论,可以结合$each一起来使用,如下:

结果如下:

我们可以使用$slice来固定数组的长度,假设我固定数组的长度为5,如果数组中的元素不足5个,则全部保留,如果数组中的元素超过5个,则只会保留最新的5个,如下:

注意:$slice的值为负数,运行结果如下:

我们还可以在清理之前使用$sort对数据先进行排序,然后再清理比如我有一个class文档,如下:

现在向这个文档中插入student,每个student有姓名和成绩,然后按照成绩降序排列,只要前5条数据,如下:

$sort的取值为-1和1,-1表示降序,1表示升序。

上面的命令执行两次之后(即插入两次),结果如下:

$slice和$sort不能只和$push一起使用,还要加上$each。

MongoDB中文档的更新操作示例详解(mongodb document)

$addToSet

我们可以在插入的时候使用$addToSet,表示要插入的值如果存在则不插入,否则插入,如下:

上面的命令执行多次之后,发现只成功插入了一条数据。也可以将$addToSet和$each结合起来使用,如下:

$pop

$pop可以用来删除数组中的数据,如下:

1表示从comments数组的末尾删除一条数据,-1表示从comments数组的开头删除一条数据。

$pull

使用$pull我们可以按条件删除数组中的某个元素,如下:

表示删除数组中值为的数据。

$

既然是数组,我们当然可以通过下标来访问,如下一行操作表示将下标为0的(第一个comments)comments修改为:

可是有的时候我并不知道我要修改的数据处于数组中的什么位置,这个时候可以使用$符号来解决:

查询条件查出来的下标,$符号就代码这个下标,然后通过$符号就能将之修改。

save

save是shell中的一个函数,接收一个参数,这个参数就是文档,如果文档中有_id参数save会执行更新操作,否则执行插入操作,使用save操作我们可以方便的完成一些更新操作。

类似于如下命令则表示一个插入操作(因为没有_id):

好了,MongoDB的更新操作我们就先介绍这么多,有问题欢迎留言讨论。

参考资料:

1.《MongoDB权威指南第2版》

总结

标签: mongodb document

本文链接地址:https://www.jiuchutong.com/biancheng/312089.html 转载请保留说明!

上一篇:Java操作mongodb的模糊查询和精确查询(java操作mongodb数据库)

下一篇:MongoDB用Mongoose得到的对象不能增加属性完美解决方法(两种)(mongodb morphia)

  • 税收优惠政策落实情况报告
  • 咨询服务业涉及税费
  • 工会经费每月必须60块钱
  • 个体工商户生产经营所得税税率表2021
  • 销售原材料需要交消费税吗
  • 纳税筹划成本支出怎么算
  • 房地产企业被收购报表处理
  • 增值税发票抵扣多少个点
  • 已经退款买家不退货怎么办
  • 房屋出租收入其税收如何计算呢?
  • 付款单是发票吗
  • 计算客户的应收账款成本
  • 出纳如何登账
  • 营改增成功案例
  • 增值税发票清单怎么导出
  • 所得税费用什么时候结转到本年利润
  • 案例分析关于拟建科学馆的请示报告
  • 法人给公司基本户打款
  • 个体户网上报税流程视频
  • 吸收合并后被合并的公司
  • 增值税普通发票有什么用
  • 1697509246
  • 高价转让股份
  • 公司购买房子涉及什么税
  • win10一段时间不动黑屏
  • 怎么用苹果电脑查找苹果手机
  • win10平板模式怎么改回来
  • centos只有lo
  • 当前页面的脚本发生错误代码0没有注册类
  • 哪些发票不可以通过数电平台开具
  • 盘亏应交税费
  • 一品红叶发黄咋回事儿
  • qiankun跨域问题
  • 如何将tomcat卸载干净
  • 激光slam入门教程
  • PyTorch 深度学习实战 | DIEN 模拟兴趣演化的序列网络
  • pytorch .pt
  • yolov5训练命令
  • kppw源码
  • 零申报一定要有员工吗
  • 小微企业应具备的条件
  • 一般纳税人技术服务费几个点
  • 企业的财务报表不包括
  • mysql 连接过多
  • 直接材料成本总差异怎么算
  • 短期借款预提利息通过短期借款科目核算
  • 外籍个人是否可以买社保
  • 化验委托书
  • 企业自查发现以什么为主
  • 一般纳税人购进商品的会计分录
  • 加班餐费报销计入什么费用
  • 一般纳税人购货取得普通发票
  • 预收款退还如何处理
  • 项目建设期间所涉及的税
  • 普通发票作废影响额度吗
  • 外汇申报材料
  • 项目成本的估算与预算有什么区别和联系?考试资料网
  • 饭店卖烟酒需要什么手续
  • 如何处理消防安全事件
  • 税务人员如何做好本职工作
  • 单独设置停工损失科目
  • sql语句训练题及答案
  • xp开机延时启动程序
  • win8.1 开始
  • winlogon是什么意思
  • 阿里云电脑系统
  • powershow是什么意思
  • win10升级 其他用户
  • window10 .net3.5
  • win10无法安装无线显示器
  • nodejs初始化
  • Quick cocos2dx-Lua(V3.3R1)学习笔记(8) ---- 事件篇之单点触摸事件,让我们用精灵模仿一个按钮吧
  • 批处理删除除了某个文件外的所有文件
  • javascript的弹窗
  • 湖北税票真伪查询
  • 花店会计主要做什么
  • 税是每个人都要交的吗
  • 车船税与船舶吨税法律制度ppt
  • 办理企业步骤
  • 税务总局2016年70号公告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设