博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB数据修改案例
阅读量:5870 次
发布时间:2019-06-19

本文共 1578 字,大约阅读时间需要 5 分钟。

数据更新操作

队友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);

转载地址:http://setnx.baihongyu.com/

你可能感兴趣的文章
POJ 2195 Going Home 题解 《挑战程序设计竞赛》
查看>>
POJ 3415 Common Substrings 题解《挑战程序设计竞赛》
查看>>
再谈javascriptjs原型与原型链及继承相关问题
查看>>
Maximizing Battery Life
查看>>
ActiveMQ(10):ActiveMQ的静态网络链接
查看>>
多线程编程(2) - 从 CreateThread 说起
查看>>
给在生产环境下给php安装apc加速扩展脚本
查看>>
ini 文件操作记要(1): 使用 TIniFile
查看>>
再学 GDI+[33]: TGPPen - 画笔的几何变换 - SetTransform
查看>>
我的友情链接
查看>>
c#对字符串的各种操作
查看>>
jstat命令详解
查看>>
as3.0 切分位图
查看>>
Oracle维护命令合集
查看>>
zabbix监控部署
查看>>
关于Tomcat下项目中文名在Windows和Linux下编码混乱问题解决
查看>>
Android 系统 root 破解原理分析
查看>>
iptables模板
查看>>
关于redux-saga中take使用方法
查看>>
SVN部署(一)
查看>>