当前位置: 首页 > news >正文

DBA技术栈MongoDB: 数据增改删除

在这里插入图片描述
该博文主要介绍mongoDB对文档数据的增加、更新、删除操作。

1.插入数据

以下案例演示了插入单个文档、多个文档、指定_id、指定多个索引以及插入大量文档的情况。在实际使用中,根据需求选择适合的插入方式。

案例1:插入单个文档

db.visitor.insert({name:"John1", age:30})

案例2:插入多个文档

db.visitor.insert([{name:"John2", age:30}, {name:"Mary2", age:25}])

案例3:插入文档并指定_id

db.visitor.insert({_id:3, name:"John3", age:30})

案例4:插入文档并指定多个索引

db.visitor.insert({_id:4, name:"John4", age:30, index:true})

案例5:插入大量文档

db.visitor.insertMany([{name:"John", age:30}, {name:"Mary", age:25}, {name:"Peter", age:35},{name:"James", age:23}, {name:"MaryLi", age:26}, {name:"Jack", age:37}])

2. 更新字段

以下案例分别演示了更新单个字段、多个字段、多个文档、使用inc操作符更新数字字段和使用unset操作符删除字段的情况。

案例1:更新单个字段
在这个案例中,我们将更新集合中的一个文档的年龄字段。

db.visitor.update({_id: ObjectId("1234567890"), name: "John"}, {$set: {age: 35}})

案例2:更新多个字段
在这个案例中,我们将更新集合中的一个文档的年龄和姓名字段。

db.visitor.update({_id: ObjectId("1234567890")}, {$set: {name: "Jane", age: 35}})

案例3:更新多个文档
在这个案例中,我们将更新集合中所有年龄大于30的文档的年龄字段。

db.visitor.update({}, {$set: {age: 35}}, {multi: true})

案例4:使用inc操作符更新数字字段 在这个案例中,我们将使用inc操作符更新集合中一个文档的年龄字段。

db.visitor.update({_id: ObjectId("1234567890")}, {$inc: {age: 5}})

案例5:使用unset操作符删除字段 在这个案例中,我们将使用unset操作符删除集合中一个文档的年龄字段。

db.visitor.update({_id: ObjectId("1234567890")}, {$unset: {age: 1}})

3. 删除

以下案例分别演示了删除单个文档、多个文档、指定条件的文档、整个集合和指定数量的文档的情况。在实际使用中,根据需求选择适合的删除方式。注意,删除操作不可逆,请谨慎操作。

案例1:删除单个文档
在这个案例中,我们将删除集合中的一个文档。

db.visitor.remove({_id: ObjectId("1234567890")})

案例2:删除多个文档
在这个案例中,我们将删除集合中所有年龄大于30的文档。

db.visitor.remove({}, {multi: true})

案例3:删除指定条件的文档
在这个案例中,我们将删除集合中所有年龄大于30且名字为John的文档。

db.visitor.remove({age: {$gt: 30}, name: "John"})

案例4:删除整个集合
在这个案例中,我们将删除整个集合。

db.visitor.remove({})

案例5:删除指定数量的文档
在这个案例中,我们将删除集合中前两个文档。

db.visitor.remove({}, {limit: 2})
http://www.lryc.cn/news/285538.html

相关文章:

  • Xcode查看APP文件目录
  • 【视频媒体】深入了解直播视频流
  • 【01】mapbox js api加载arcgis切片服务
  • 图像分割实战-系列教程15:deeplabV3+ VOC分割实战3-------网络结构1
  • 【Docker】安装nacos以及实现负载均衡
  • 如何用数据赋能社媒营销决策?
  • 初识k8s(概述、原理、安装)
  • 【Java】Maven的基本使用
  • 【RT-DETR有效改进】遥感旋转网络 | LSKNet动态的空间感受野网络(轻量又提点)
  • 【进阶之路】如何提升 Java 编程内力?
  • Git一台电脑 配置多个账号
  • 2024年华为OD机试真题-素数之积-Java-OD统一考试(C卷)
  • 汤姆·齐格弗里德《纳什均衡与博弈论》笔记(2)
  • QT上位机开发(动态数据采集与监控)
  • vue2 -- 截图工具html2canvas
  • 笔记-孙子兵法-第三篇-谋攻(1)-不战而屈人之兵,上兵伐谋,韩信之死
  • kafka参数配置参考和优化建议 —— 筑梦之路
  • 如何本地搭建Splunk Enterprise数据平台并实现任意浏览器公网访问
  • FlinkAPI开发之状态管理
  • initdb: command not found【PostgreSQL】
  • QT第六天
  • linux 安装 grafana
  • “GPC爬虫池有用吗?
  • Kotlin协程的JVM实现源码分析(下)
  • js实现九九乘法表
  • HarmonyOS鸿蒙应用开发(三、轻量级配置存储dataPreferences)
  • 基于 IDEA 进行 Maven 工程构建
  • 牛客周赛 Round 17 解题报告 | 珂学家 | 枚举贪心 + 二分最短路
  • 喝口水都长胖?原来是“胖菌”惹的祸?!
  • 【C++干货基地】namespace超越C语言的独特魅力(文末送书)