Mongodb使用$pop删除数组中的元素

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第67篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关注威赞。谢谢。

本文描述怎样从Mongodb的文档数组字段中,使用$pop删除数组中的元素。

定义

$pop操作符删除数组当中的第一个元素或最后一个元素。向指定数组字段传入参数-1,表示删除第一个元素。而向指定数组字段传入参数1,表示删除最后一个元素。

按照下面的形式,使用$pop操作符

{$pop: {<field>: -1|1, ...}}

当删除嵌套文档或数组中数组元素时,使用点操作符。

行为

  • 自mongodb5.0开始,UPDATE操作按照字段名称的字典顺序更新字段。当字段中包含数字时,按照数字顺序依次更新字段。当然,对一个文档的多个字段操作,是原子性的。
  • mongodb 5.0版本以后,向$pop传入空表达式({ })时,mongodb不再抛出错误。空表达式不会修改字段值 ,也不会在oplog中,添加新的操作记录。
  • 针对非数组字段使用$pop时,数据更新操作会报错。
  • 当使用$pop操作删除数组中的最后一个元素时,数组并不会被删除,而是保留一个空数组。

应用

删除数组中的第一个元素

创建students集合

db.students.insertOne({_id: 1, scores:[8,9,10]})

构建数据更新语句,删除字段scores中的第一个元素8

db.students.updateOne({_id: 1}, {$pop: {scores: -1}})

查询更新结果

删除数组当中的最后一个元素

向集合中插入数据。其中scores是数组字段,包含两个元素。

db.students.insert({_id: 10, scores:[9, 10]})

构建查询语句,删除scores数组字段的最后一个元素10

db.students.updateOne({_id: 10}, {$pop: {scores: 1}})

查询数据更新结果

相关推荐

  1. 关于原地 删除数组元素(算法题)

    2024-06-13 09:58:03       56 阅读
  2. Mongodb使用$<identifier>过滤更新数组元素

    2024-06-13 09:58:03       34 阅读
  3. Mongodb字段删除

    2024-06-13 09:58:03       26 阅读
  4. PHP】取出数组第一个元素

    2024-06-13 09:58:03       58 阅读
  5. 删除链表指定元素

    2024-06-13 09:58:03       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-13 09:58:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-13 09:58:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-13 09:58:03       82 阅读
  4. Python语言-面向对象

    2024-06-13 09:58:03       91 阅读

热门阅读

  1. 算法笔记 图论和优先级队列的笔记

    2024-06-13 09:58:03       29 阅读
  2. linux开发常用命令

    2024-06-13 09:58:03       24 阅读
  3. 代码整洁之道学习笔记

    2024-06-13 09:58:03       24 阅读
  4. 使用foreach和stream遍历并修改List列表

    2024-06-13 09:58:03       25 阅读
  5. Elasticsearch介绍,要点和难点以及优缺点

    2024-06-13 09:58:03       24 阅读
  6. 智能数据抓取:自动化时代的资讯收割机

    2024-06-13 09:58:03       31 阅读
  7. 用python把docx批量转为pdf

    2024-06-13 09:58:03       38 阅读
  8. flutter 设置缓存的方法

    2024-06-13 09:58:03       25 阅读
  9. OpenSSL新手教程:加密与安全通信基础

    2024-06-13 09:58:03       32 阅读
  10. web前端需要的知识点:深度解析与技能进阶之路

    2024-06-13 09:58:03       32 阅读