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

该博文主要介绍mongoDB对文档数据的增加、更新、删除操作。

1.插入数据

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

案例1:插入单个文档

bash 复制代码
db.visitor.insert({name:"John1", age:30})

案例2:插入多个文档

bash 复制代码
db.visitor.insert([{name:"John2", age:30}, {name:"Mary2", age:25}])

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

bash 复制代码
db.visitor.insert({_id:3, name:"John3", age:30})

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

bash 复制代码
db.visitor.insert({_id:4, name:"John4", age:30, index:true})

案例5:插入大量文档

bash 复制代码
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:更新单个字段

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

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

案例2:更新多个字段

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

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

案例3:更新多个文档

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

bash 复制代码
db.visitor.update({}, {$set: {age: 35}}, {multi: true})

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

bash 复制代码
db.visitor.update({_id: ObjectId("1234567890")}, {$inc: {age: 5}})

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

bash 复制代码
db.visitor.update({_id: ObjectId("1234567890")}, {$unset: {age: 1}})

3. 删除

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

案例1:删除单个文档

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

bash 复制代码
db.visitor.remove({_id: ObjectId("1234567890")})

案例2:删除多个文档

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

bash 复制代码
db.visitor.remove({}, {multi: true})

案例3:删除指定条件的文档

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

bash 复制代码
db.visitor.remove({age: {$gt: 30}, name: "John"})

案例4:删除整个集合

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

bash 复制代码
db.visitor.remove({})

案例5:删除指定数量的文档

在这个案例中,我们将删除集合中前两个文档。

bash 复制代码
db.visitor.remove({}, {limit: 2})
相关推荐
这个DBA有点耶2 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G2 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备2 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远2 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
2601_962218612 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
张洛闻Eren2 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
于平安2 天前
MySQL-触发器
数据库·mysql
白远山2 天前
上海24小时自助健身房解决方案实战指南与经验分享
java·数据库·架构·需求分析
Omics Pro2 天前
斯坦福Nature+Science|广义虚拟细胞基础大模型
数据库·人工智能·算法·机器学习·自然语言处理
2603_965148112 天前
AI+API选品:下一代智能商务助手雏形已现
java·大数据·数据库·人工智能·数据挖掘