MongoDB数据修改案例
数据更新操作
队友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
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);
MongoDB数据修改案例的更多相关文章
- mongodb 数据修改
update:语法格式如下: db.collection.update( <query>, <update>, { upsert: <boolean>, multi ...
- MongoDB数组修改器更新数据(转)
MongoDB数组修改器更新数据 这里,我们将了解一下数组修改器.数组,是我们经常看到和使用到的且非常有用的数据结构:它不仅可以通过索进行引用,还可以作为集合来使用.数组修改器,顾名思义,它是用 ...
- NoSQL 数据库案例实战 -- MongoDB数据备份、恢复
MySQL数据迁移到MongoDB数据库中 前言 一.数据备份 二.数据恢复 前言 本环境是基于 Centos 7.8 系统构建mongodb-enterprise-4.2.8学习环境具体构建,请参考 ...
- Android之三种网络请求解析数据(最佳案例)
AsyncTask解析数据 AsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用. AsyncTask是个抽象类,使用时需要继承这个类,然后调用execute()方法. ...
- D3js初探及数据可视化案例设计实战
摘要:本文以本人目前所做项目为基础,从设计的角度探讨数据可视化的设计的方法.过程和结果,起抛砖引玉之效.在技术方案上,我们采用通用web架构和d3js作为主要技术手段:考虑到项目需求,这里所做的可视化 ...
- MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB数据
看到下图,是通过Jqgrid实现表格数据的基本增删查改的操作.表格数据增删改是一般企业应用系统开发的常见功能,不过不同的是这个表格数据来源是非关系型的数据库MongoDB.nosql虽然概念新颖,但是 ...
- 通过logstash-input-mongodb插件将mongodb数据导入ElasticSearch
目的很简单,就是将mongodb数据导入es建立相应索引.数据是从特定的网站扒下来,然后进行二次处理,也就是数据去重.清洗,接着再保存到mongodb里,那么如何将数据搞到ElasticSearch中 ...
- MongoDB数据创建与使用
MongoDB数据创建与使用 创建数据库 代码功能:读取本地文本文件,并保存到数据库中 import pymongo #连接mongo数据库 client = pymongo.MongoClient( ...
- MongoDB之修改器
MongoDB之修改器 $set 简单粗暴 {name: valuel} 直接将key对应的值赋值给value. db.xxoo.insert({}, {set: {key: value}}) / ...
随机推荐
- 3d touch 的使用(一)
废话不多说,直接上代码------------------ 在 - (BOOL)application:(UIApplication *)application didFinishLaunchingW ...
- log4j:WARN Please initialize the log4j system properly.解决方案
在使用quarz任务调度框架时的错误,实际上这个问题很常见,并不影响程序的使用,只是缺少日志输出,完整错误信息: log4j:WARN No appenders could be found for ...
- 多帧图片转gif
示例 工具photosh cc2017 1: 文件--> 脚本--> 将文件载入堆栈--> 选择文件-->勾选窗口的时间轴-->底部 从图层建立帧--> 设置时间延 ...
- BottomSheetBehavior 结合CoordinatorLayout实现底部栏
1.xml <?xml version="1.0" encoding="utf-8"?> <android.support.design.wi ...
- c# ExecuteScalar()
ExecuteScalar这个方法是从数据库中检索单个值返回值是object类型,必须用与它在数据库里存放的类型相同类型或者可以转换成的类型,比如数据是nchar类型值为 "123" ...
- uva 11082 Matrix Decompressing 【 最大流 】
只看题目的话~~怎么也看不出来是网络流的题目的说啊~~~~ 建图好神奇~~ 最开始不懂---后来看了一下这篇-- http://www.cnblogs.com/AOQNRMGYXLMV/p/42807 ...
- 【AnjularJS系列5 】— scopes、module、controller
第五篇, scopes.module.controller 这一篇,感觉,在前面几篇就使用过的属性,但,总觉得没有理解透彻,有待完善!~ 1.scopes A.定义:$scope是一个把view(一个 ...
- Linux中删除特殊符号文件名文件
Linux 系统下的文件名长度最多可到256个字符.通常情况下,文件名的字符包括:字母.数字.“.”(点).“_”(下划线)和“-”(连字符). Linux 允许在文件名中使用除上述符号之外的其它符号 ...
- c/c++连接mysql数据库设置及乱码问题(vs2013连接mysql数据库,使用Mysql API操作数据库)
我的安装环境: (1)vs2013(32位版) (vs2013只有32位的 没有64位的,但是它可以编译出64位的程序) : (2)mysql-5.7.15(64位) vs2013中的设置(按步骤来 ...
- luoguP2742 【模板】二维凸包 / [USACO5.1]圈奶牛 二维凸包
我们知道,纵坐标最小的点一定在凸包上(如果有多个,那它们都会被取到) 随便找一个纵坐标最小的点,将其他所有点按照这个点为原点极角排序,我们发现极角大的会在极角小的后面加入(感性认知一下) 考虑新(加入 ...