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})
相关推荐
数据最前线2 分钟前
Doris表设计与分区策略:让海量数据管理更高效
数据库
时光追逐者11 分钟前
MongoDB从入门到实战之MongoDB快速入门(附带学习路线图)
数据库·学习·mongodb
头顶秃成一缕光34 分钟前
Redis的主从模式和哨兵模式
数据库·redis·缓存
AIGC大时代36 分钟前
高效使用DeepSeek对“情境+ 对象 +问题“型课题进行开题!
数据库·人工智能·算法·aigc·智能写作·deepseek
博睿谷IT99_37 分钟前
数据库证书可以选OCP认证吗?
数据库·oracle·开闭原则·ocp认证
乐维_lwops1 小时前
数据库监控 | MongoDB监控全解析
数据库·mongodb·数据库监控
观无1 小时前
Redis安装及入门应用
数据库·redis·缓存
柏油2 小时前
MySql InnoDB 事务实现之 undo log 日志
数据库·后端·mysql
DolphinScheduler社区2 小时前
白鲸开源WhaleStudio与崖山数据库管理系统YashanDB完成产品兼容互认证
数据库·开源·认证·崖山数据库·白鲸开源
阑梦清川3 小时前
AI超级智能体项目教程(二)---后端项目初始化(设计knif4j接口文档的使用)
java·前端·数据库