MongoDB中UPDATE操作$pullAll的方法
学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第70篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关注威赞。谢谢。
本篇文章是Mongodb的第70篇文章了。回头想想当时写第一篇文章的场景,为自己设定了一个宏大的目标,自己要写100篇,写200篇,把Mongodb官网上所有的知识点都按照自己的理解写出来。其实中间有很多事情耽误了进度,或工作忙,或家庭事务繁忙,或有其他的想法志向。但在有时间的时候,依旧会打开官方文档,打开编辑器,开始写文档。力争每个文档描述一个知识点,把知识点都使用中文描述清楚。里面的每一个应用例子都自己测试过,理解后再写到文档当中。虽然进度会比较缓慢,但保证了自己学习整理的同事,也将知识点清晰的呈现在每一个阅读文档的朋友。平时有跑步的习惯,也跑过2次马拉松。写作就和跑步一样,平时有积累,后面才可以持续性的输出。写作当中遇到的一些问题,瓶颈,就和跑步训练当中遇到的伤病,瓶颈,或者马拉松跑道上的撞墙一样,努力坚持,总可以到达终点。工作这么多年,一直在看书学习,除了工作内容以外,写文档的经历确实比较少。现在趁着Mongodb知识点整理的机会,把编写文档的技能提高起来,同时让自己真正的开始积累起来。现在这里是第70篇,距离100篇已经不远,期待后面的200篇,300篇。。。持续写作,持续积累,加油!!!
言归正传 ,本文介绍Mongodb UPDATE操作中的$pullAll, 用来从数组中删除多个元素。
定义
与$pull有所不同,$pull操作通过指定一个查询条件或单个值来删除数组中的元素。 而$pullAll删除所有在指定列表中的数组元素。按照UPDATE操作中按照下面的形式,使用$pullAll.
{$pullAll: {<field1>: [<value1>, <value2>,...]}}
删除嵌套文档或数组中的元素,使用点操作符。
行为
- 自mongodb5.0开始,UPDATE操作按照字段名称的字典顺序更新字段。当字段中包含数字时,按照数字顺序依次更新字段。当然,对一个文档的多个字段操作,是原子性的。
- mongodb 5.0版本以后,向$pullAll传入空表达式({ })时,mongodb不再抛出错误。空表达式不会修改字段值 ,也不会在oplog中,添加新的操作记录。
- 当用户指定删除文档或数组时,$pullAll操作仅删除掉和指定文档数组严格相等的元素,包括数组元素的顺序。
应用
创建survey集合
db.survey.insertOne({ _id:1, scores: [0,2,5,5,1,0] })
构建数据更新语句,删除scores字段中的0和5
db.survey.updateOne({_id:1},{$pullAll:{ scores: [0,5]}})
查询更新结果
db.survey.find()
{
"_id": 1,
"scores": [
2,
1
]
}
到此这篇关于MongoDB中UPDATE操作$pullAll的文章就介绍到这了,更多相关MongoDB操作$pullAll内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
关于mongoDB的聚合操作_aggregate()归纳详解
这篇文章主要介绍了关于mongoDB的聚合操作_aggregate()归纳详解,关系是关联关系的一种,是强的关联关系,聚合是整体和个体之间的关系,聚合关系也是通过实例变量实现的。在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分,需要的朋友可以参考下2023-07-07ubuntu安装mongodb创建账号和库及添加坐标索引的流程分析
这篇文章主要介绍了ubuntu安装mongodb创建账号和库及添加坐标索引的流程分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-10-10centos离线安装mongodb-database-tools方法详解
这篇文章主要介绍了centos离线安装mongodb-database-tools方法详解的相关资料,需要的朋友可以参考下2022-11-11
最新评论