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})
相关推荐
bug菌¹28 分钟前
滚雪球学Oracle[6.2讲]:Data Guard与灾难恢复
数据库·oracle·data·灾难恢复·guard
一般路过糸.31 分钟前
MySQL数据库——索引
数据库·mysql
Cengineering1 小时前
sqlalchemy 加速数据库操作
数据库
Cikiss1 小时前
微服务实战——平台属性
java·数据库·后端·微服务
小小不董2 小时前
《Linux从小白到高手》理论篇:深入理解Linux的网络管理
linux·运维·服务器·数据库·php·dba
无敌少年小旋风2 小时前
MySQL 内部优化特性:索引下推
数据库·mysql
柒小毓2 小时前
将excel导入SQL数据库
数据库
bug菌¹2 小时前
滚雪球学Oracle[2.5讲]:数据库初始化配置
数据库·oracle·数据库初始化·初始化配置
一休哥助手2 小时前
Redis 五种数据类型及底层数据结构详解
数据结构·数据库·redis
翔云1234562 小时前
MVCC(多版本并发控制)
数据库·mysql