MongoDB数据修改案例

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

数据更新操作

队友MongoDB而言,数据更新是一件非常麻烦的事情。Mongo通常会存副本数据,数据有变更的时候,最好的做法是删除MongoDB的数据,重新插入。

Mongo中提供了两个函数,一个是save(),一个是update()。

范例:更新存在的数据 -- 将年龄是19岁的人的成绩都更新为100分

只更新查询出的第一条数据,没有不增加

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

所有满足条件的数据都更新

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

范例: 更新不存在的数据 -- 将年龄是30岁的人更新他的名称name

db.students.update({"age":30},{"$set":{"name":"小李子"}},true,false);

第一个true表示如果不存在,则创建一条新数据。这种功能用的比较少。

修改器

1.inc 主要针对一个数字字段,增加某个字段的数据内容。

范例:将所有年龄为19岁的学生成绩一律减少30分。

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

2.set 进行内容重新设置

范例:将年龄为20的人的成绩修改为89

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

3.unset 删除某个成员的内容

范例:删除张三的年龄和成绩信息

db.students.update({"name":"张三"},{"$unset":{"age":1,"score":1}},false,true);

4.push 相当于将内容追加到指定的成员之中(基本上是用于数组)。一次增加一个元素,如果增加的是数组,表示一次增加一个数组。

范例:向张三添加课程信息

db.students.update({"name":"张三"},{"$push":{"course":["语文","数学"]}},false,true);

如果没有数组,就进行一个新的数组的创建,如果有则进行内容的追加。

5.pushAll与push类似,可以一次追加多个内容到数组里面

db.students.update({"name":"张三"},{"$pushAll":{"course":["美术","音乐"]}},false,true);

6.addToSet 如果已存在就不添加了

db.students.update({"name":"张三"},{"$addToSet":{"course":"美术"}},false,true);

7.pop 删除数组内的数据。文档是行,成员是列,集合是表。-1表示第一个课程。1表示最后一个课程。

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

8.pull 从数组中删除指定内容的数据

db.students.update({"name":"张三"},{"$pull":{"course":"美术"}});

9.pullAll一次性删除多个内容

db.students.update({"name":"张三"},{"$pullAll":{"course":["音乐","舞蹈"]}});

10.rename 为成员名称重命名

db.students.update({"name":"张三"},{"$rename":{"course":"课程"}},false,true);



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/7856800.html,如需转载请自行联系原作者
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
20天前
|
SQL DataWorks NoSQL
DataWorks产品使用合集之如何将SQL Server中的数据转存到MongoDB
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
248 1
|
2月前
|
JSON NoSQL MongoDB
实时计算 Flink版产品使用合集之要将收集到的 MongoDB 数据映射成 JSON 对象而非按字段分割,该怎么操作
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4天前
|
NoSQL 物联网 atlas
智能制造案例专题|与MongoDB一起解锁工业4.0转型与增长的无限潜力!
欢迎访问MongoDB中文官网 https://www.mongodb.com/zh-cn 了解更多智能制造业的MongoDB解决方案
5081 2
|
4天前
|
监控 NoSQL MongoDB
MongoDB中的TTL索引:自动过期数据的深入解析与使用方式
MongoDB中的TTL索引:自动过期数据的深入解析与使用方式
|
17天前
|
NoSQL 测试技术 MongoDB
使用同步和异步方式更新插入MongoDB数据的性能对比
在这篇文章中,我将探讨如何使用同步和异步方式插入数据到MongoDB,并对两种方式的性能进行对比。并将通过Python中的 pymongo 和 motor 库分别实现同步和异步的数据插入,并进行测试和分析。
|
20天前
|
分布式计算 DataWorks NoSQL
DataWorks操作报错合集之从MongoDB同步数据到MaxCompute(ODPS)时,出现报错,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
DataWorks操作报错合集之从MongoDB同步数据到MaxCompute(ODPS)时,出现报错,该怎么解决
|
23天前
|
存储 NoSQL 数据挖掘
深入探索MongoDB聚合操作:解析数据之美
深入探索MongoDB聚合操作:解析数据之美
|
23天前
|
NoSQL 物联网 atlas
|
24天前
|
JSON NoSQL MongoDB
蓝易云 - mongodb数据如何导入到clickhouse
以上步骤是一种通用的方法,具体的实现可能会根据你的具体需求和数据结构有所不同。
19 1
|
3天前
|
存储 NoSQL MongoDB
深入详解MongoDB索引的数据组织结构
深入详解MongoDB索引的数据组织结构