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})
相关推荐
拾忆,想起1 小时前
Spring拦截链揭秘:如何在复杂应用中保持控制力
java·数据库·spring
Bytebase2 小时前
AWS re:Invent 2024 现场实录 - It‘s all about Scale
运维·数据库·dba·开发者·数据库管理·devops
GreatSQL2 小时前
【GreatSQL优化器-10】find_best_ref
数据库
weisian1512 小时前
Mysql--基础篇--多表查询(JOIN,笛卡尔积)
数据库·mysql
LabVIEW开发3 小时前
LabVIEW数据库管理系统
数据库·labview
NineData3 小时前
NineData云原生智能数据管理平台新功能发布|2024年12月版
数据库·sql·算法·云原生·oracle·devops·ninedata
xsh801442423 小时前
Java Spring Boot监听事件和处理事件
java·前端·数据库
焱焱枫3 小时前
Oracle Database 23ai 新特性: UPDATE 和 DELETE 语句的直接联接
数据库·oracle
kikyo哎哟喂3 小时前
InnoDB存储引擎对MVCC的实现
数据库
IvorySQL3 小时前
IvorySQL 4.0 之兼容 Oracle 包功能设计思路解读
数据库