位置: 编程技术 - 正文

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)

  • 递延所得税计算题
  • 机动车发票税率怎么算
  • 销售货物应税劳务服务清单给客户一份是不是就可以了
  • 劳务收入个税需要进行所得税汇算吗
  • 企业账号变更
  • 调整汇算清缴利息怎么算
  • 上市公司股票增持是什么回事
  • 应收外币账款如何入账
  • 以旧换新的会计处理规定
  • 异地缴纳个人所得税
  • 餐饮企业卖套餐赠送单品要交增值税吗?
  • 服务业的地税是什么税
  • 小微企业企业税率表
  • 工程项目的业务流程
  • 公司注销增值税在借方有余额怎么处理
  • 小微企业附加税优惠政策2023
  • 销售不动产增值税税率变化
  • 生产成本明细账怎么填图片
  • 已确定收入后补缴增值税
  • 外籍人员在境内取得所得在我国应该计征个人所得税
  • 出售单位车辆如何处理业务?
  • linux -pv
  • win11 分区
  • 财政专项补助资金企业所得税申报
  • 广告费和业务宣传费15%还是30%
  • 整体租赁经营模式是什么
  • 什么是会计分录其一般表达形式是怎样的
  • php云盘源码
  • 个人税收是怎么计算的举例
  • flex布局子元素height100
  • php 可变变量
  • golang调用python代码
  • vue内置指令实验总结
  • 涌泉的准确位置图 图解
  • 无偿调出固定资产账面价值为零如何处理
  • 残疾人就业保障金计入什么科目
  • 公允价值计量的投资性房地产
  • 发票抵扣联和发票联区别
  • mysql将查询结果存到另一个表
  • 资信证明好开吗
  • 保险中介手续费规定最新
  • 通过创建SQLServer 2005到 Oracle10g 的链接服务器实现异构数据库数据转换方案
  • 初识PostgreSQL存储过程
  • 私车公用的汽油费计入哪个科目
  • 医院怎么开发票?
  • 期末账项调整的内容包括
  • 长期股权投资的初始投资成本
  • 办公室租赁费摊销分录
  • 购买汽车的工本费如何入账
  • 已核销的坏账又收回时应当及时入账,防止形成账外款
  • 收到退回多付的材料退款
  • 什么情况下增值税发票不能抵扣
  • 子公司和区域公司的区别
  • 资产减值损失是费用吗
  • sqlserver临时表 效率
  • 出现错误,请联系客服
  • xp系统无法打开网页怎么解决
  • centos安装ntfs 3g
  • usrmlnka.exe - usrmlnka进程是什么意思
  • win10 win7兼容模式
  • xp清理系统的命令
  • 格式化不干净
  • 如何重置路由器wifi密码
  • win8电脑卡怎么办简单步骤
  • 为了保证系统安全,必须为用户和角色设置密码
  • 小地图的主要作用是观察队友的大概位置
  • perl 文本文件处理
  • 求婚表白的语句
  • jquery解析json数据
  • 详解怎样利用双色球密码选号
  • 什么是碰撞检测
  • android基于什么操作系统
  • shell脚本ne
  • 在javascript中
  • 使用jQuery调用XML实现无刷新即时聊天
  • android10获取设备id
  • jquery循环生成li
  • 去哪儿网客服电话怎么转人工
  • 四川地方税务 副局长 晓宏
  • 关于个体户的个人所得税的最新政策法规
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设