(5)--MongoDB--数据更新

函数

update()

语法

db.集合.update(更新条件,新的对象数据,upsert, multi)
  1. upsert: 如果要更新的数据不存在,则增加一条新的内容(true,增加,false 不增加)
  2. multi: 是否只更新满足条件的第一条记录,设置 false(默认),只更新第一个,true:都更新

更新存在的数据

显示已有集合数据

db.students.find().skip(0).limit(5).sort({"$natural":1}).pretty();

在这里插入图片描述
将年龄是19岁的人的成绩都更新为100分
只更新查询的第一条数据

db.students.update({"age":19},{"$set":{"score":100}},false,false);

$set 称为修改器
在这里插入图片描述
将年龄是19岁的人的成绩都更新为100分
所有满足条件的数据都更新

db.students.update({"age":19},{"$set":{"score":100}},false,true);

在这里插入图片描述

更新不存在的数据

没有年龄为30岁学生的信息,更新操作变成创建

db.students.update({"age":30},{"$set":{"name":"不存在"}},true,false);

查询目前的集合数据
在这里插入图片描述
查询集合查看结果
在这里插入图片描述

save()

此函数与 update() 函数相似,但不常用

db.students.save({ "_id" : ObjectId("5def42ea64471b41051ee59d"),"age":50});

在这里插入图片描述

修改器

数据的修改会牵扯到内容的变更,结构的变更(包含数组(列表))

$inc

主要针对一个数字字段,增加某个数据字段的数据内容
语法:

{"$inc":{成员: 内容}}

查询目前的集合数据
在这里插入图片描述
将所有年龄为19岁的学生成绩一律减少30分,年龄加1岁
只修改第一条

db.students.update({"age":19},{"$inc":{"score":-30,"age":1}},false,false)

已知的集合数据
在这里插入图片描述

$set

进行内容的重新设置

{"$set":{"成员":"新内容"}}

将年龄是20岁的所有人的成绩修改为89,(只改动第一条)

db.students.update({"age":20},{"$set":{"score":89}});

$unset

删除某个成员的内容

{"$unset":{"成员",1}}

已知的集合数据
在这里插入图片描述
删除"张三" 的年龄与成绩信息

db.students.update({"name":"李四"},{"$unset":{"age":1,"score":1}});

在这里插入图片描述

$push

将内容追加到指定的成员之中(基本上是数组(列表))
该修改器就是进行数组(列表)数据的添加操作

{"$push":{成员:value}}

查询目前的集合数据
在这里插入图片描述
向李四中添加课程信息(此时李四信息下没有相应信息)

db.students.update({"name":"李四"},{"$push":{"course":["语文","数学"]}});

在这里插入图片描述
此修改器增加的是列表
在这里插入图片描述

db.students.update({"name":"王五"},{"$push":{"course":"语文"}});

在这里插入图片描述
查询目前的集合数据
在这里插入图片描述
添加一门课程

db.students.update({"name":"Wilson","age":19},{"$push":{"course":"美术"}});

在这里插入图片描述

$pushAll

与 $push 是类似的,可以一次追加多个内容到数组(列表中)

{"$pushAll":{"成员":数组内容}}

查询目前的集合数据
在这里插入图片描述
向"孙七" 中添加多个课程信息

db.students.update({"name":"孙七"},{"$pushAll":{"course":["美术","音乐","素描"]}});

在这里插入图片描述

$addToSet

向数组(列表)增加一个内容,只有这个内容不存在的时候才会增加

{"$addToSet":{成员:内容}}

向"孙七"中增加舞蹈课程内容

db.students.update({"name":"孙七"},{"$addToSet":{"course":"舞蹈"}});

在这里插入图片描述

$pop

删除数组(列表)中的数据

{"$pop":{成员:内容}}

内容为 -1 表示删除第一个内容
内容为 1 表示删除最后一个内容
删除孙七的第一门课程

db.students.update({"name":"孙七"},{"$pop":{"course":-1}});

在这里插入图片描述
删除孙七 最后一门课程

db.students.update({"name":"孙七"},{"$pop":{"course":1}});

在这里插入图片描述

$pull

从数组(列表)内删除一个指定内容的数据

{"$pull":{成员:数据}}   #此处数据是进行数据比对的

删除孙七素描课程

db.students.update({"name":"孙七"},{"$pull":{"course":"素描"}});

在这里插入图片描述

$pullAll

一次性删除数组(列表)内多个内容

{"$pull":{成员:[数据1,数据2,...]}}

在这里插入图片描述

db.students.update({"name":"Wilson"},{"$pullAll":{"course":["语文","数学","英语"]}});

在这里插入图片描述

$rename

为成员名称重命名

{"rename":{旧成员名称:新成员名称}}

查询已有集合数据
在这里插入图片描述
将 刘九 name 成员名称,修改为 “姓名”

db.students.update({"name":"刘九"},{"$rename":{"name":"姓名"}});

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: spring-boot-starter-data-mongodb是一个Spring Boot的starter,用于快速集成MongoDB数据库。它提供了MongoDB的自动配置和一些常用的操作方法,使得开发者可以更加方便地使用MongoDB进行数据存储和查询。同时,它还支持多数据源配置和集成Spring Data MongoDB等功能。 ### 回答2: Spring Boot Starter Data MongoDB是一个为Spring Boot应用提供MongoDB支持的工具包。它简化了MongoDB数据库的集成,并提供了一组预定义的库,以便于开发人员快速启动MongoDB应用程序。 它提供了丰富的功能,包括CRUD操作,数据检索和管理,以及事务管理等。该工具包还提供了许多便捷的功能,如自动配置,自动映射和可插拔的错误处理机制。这些功能极大地简化了MongoDB开发的过程,帮助开发人员更快、更简单地构建高效的MongoDB应用程序。 Spring Boot Starter Data MongoDBalso统一了MongoDB数据存储和检索的方式,提供了易于使用的API,让开发人员可以快速地操作MongoDB。此外,该工具包还提供了一些高级功能,如分页查询、属性筛选和排序,使得数据检索过程更容易管理和调整。 总之,Spring Boot Starter Data MongoDB 是一个非常强大的工具包,能够帮助开发人员在Spring Boot应用中轻松集成MongoDB,并提供丰富的功能、易用的API和高效的处理机制,大大简化了MongoDB开发过程,提高了开发效率。 ### 回答3: spring-boot-starter-data-mongodb是一个基于Spring Boot的MongoDB开发包。MongoDB是一种常见的NoSQL数据库,它具有数据存储和查询速度快、高可扩展性、能够存储大量数据等优点。此外,MongoDB还具有面向文档的数据模型,可以轻松存储和查询复杂的嵌套数据结构。 Spring Boot为开发人员提供了一种简单的方法来快速开发基于MongoDB的应用程序。spring-boot-starter-data-mongodb提供了MongoDB数据库的自动配置和集成,无需手动编写大量的配置代码,使开发人员可以更加专注于业务逻辑的实现。 该开发包还提供了Spring Data MongoDB,这是一个强大的工具集,可以帮助开发人员轻松地进行MongoDB数据库操作。Spring Data MongoDB的核心功能包括索引支持、数据校验、CRUD操作、分页查询、异步查询和聚合查询等。 除此之外,spring-boot-starter-data-mongodb还提供了一些其他的好处,例如自动创建MongoDB数据源、自动配置MongoDB驱动程序等,这些功能使得开发人员可以更加便捷地使用MongoDB数据库。 总之,spring-boot-starter-data-mongodb使得基于MongoDB的开发变得更加简单和高效,使开发人员可以更加专注于业务实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值