mongo数据更新

数据更新
简单的做法是删除重新插入
update()函数
语法
db.集合.update(更新条件,新的对象数据(更新操作符),upsert,multi)
upsert如果要更新的数据不存在,则增加一条新的内容(true为增加,false不增加)
multi:是否只更新满足条件的第一条记录,设置为false只更行第一个,true全更新

> db.stu.find({},{"_id":0})
{ "name" : "张三", "sex" : "男", "age" : 18, "score" : 70, "address" : "河南" }
{ "name" : "李四", "sex" : "女", "age" : 20, "score" : 60, "address" : "山东" }
{ "name" : "王五", "sex" : "男", "age" : 17, "score" : 44, "address" : "江苏" }
{ "name" : "赵六", "sex" : "男", "age" : 21, "score" : 80, "address" : "山东" }
{ "name" : "孙七", "sex" : "女", "age" : 23, "score" : 50, "address" : "湖北" }
{ "name" : "tom", "sex" : "男", "age" : 24, "score" : 20, "address" : "海南" }
{ "name" : "lucy", "sex" : "女", "age" : 21, "score" : 62, "address" : "浙江" }
{ "name" : "jack", "sex" : "男", "age" : 20, "score" : 90, "address" : "美国" }
{ "name" : "smith", "sex" : "男", "age" : 19, "score" : 88, "address" : "美国" }

#1.把年龄<20岁的分数更新为60
db.stu.find({"age":{"$lt":20}},{"_id":0});
{ "name" : "张三", "sex" : "男", "age" : 18, "score" : 70, "address" : "河南" }
{ "name" : "王五", "sex" : "男", "age" : 17, "score" : 44, "address" : "江苏" }
{ "name" : "smith", "sex" : "男", "age" : 19, "score" : 88, "address" : "美国" }

db.stu.update({"age":{"$lt":20}},{"$set":{"score":100}},false,false);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
#只修改了一个
db.stu.find({"age":{"$lt":20}},{"_id":0});
{ "name" : "张三", "sex" : "男", "age" : 18, "score" : 100, "address" : "河南" }
{ "name" : "王五", "sex" : "男", "age" : 17, "score" : 44, "address" : "江苏" }
{ "name" : "smith", "sex" : "男", "age" : 19, "score" : 88, "address" : "美国" }
#全部修改
db.stu.update({"age":{"$lt":20}},{"$set":{"score":100}},false,true);
db.stu.find({"age":{"$lt":20}},{"_id":0});
{ "name" : "张三", "sex" : "男", "age" : 18, "score" : 100, "address" : "河南" }
{ "name" : "王五", "sex" : "男", "age" : 17, "score" : 100, "address" : "江苏" }
{ "name" : "smith", "sex" : "男", "age" : 19, "score" : 100, "address" : "美国" }

save()

db.stu.save({"_id" : ObjectId("592cc2e00be561e9e879bcb5"),"name":‘张三三‘});
只能根据_id更新

待续

时间: 2024-10-08 06:25:34

mongo数据更新的相关文章

Mongo基于一张表的数据更新另一张表

业务场景中,经常有这样一个需求,就是根据A表中的信息,更新B表的某个字段,在关系型数据库中,这个需求很简单,一条SQL搞定: update B set B.f1=A.a1 where xxxx 但在mongo数据库中,一条SQL就解决不了.好在mongo支持js脚本,可以通过js写类似于存储过程的方式实现.譬如,业务场景中,有一个用户表,一个车辆表,车辆表的状态要汇总到用户表中, var cursor = db.getCollection('vehicle').aggregate([ {$mat

mongo基础---增删改查

正文 MongoDB 是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系型数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似Json格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引----[来源百度百科] 一

mongo 复制集命令

1.登录primary2.use admin >rs.add("new_node:port") 或 rs.add({"_id":4,"host":"new_node:port","priority":1,"hidden":false})   3.use admin>rs.addArb("new_node;port") 或 rs.addArb({"

Docker学习笔记——Mongo Dockerfile及容器运行

1.创建项目目录mongo,在目录下上传下载的Mongodb安装文件及mongo.conf配置文件,创建Dockerfile文件,项目结构如下: mongo - Dockerfile - mongo.conf - mongodb-linux-x86_64-3.4.9.tgz - data - logs Dockerfile内容如下: # mongo # SOURCE_IMAGE FROM centos # MAINTAINER_INFO MAINTAINER bluemooder [email 

搭建高可用mongo集群

简介: MongoDB是一个可扩展.高性能的分布式文档存储数据库,由C 语言编写,旨在为web应用提供可扩展的高性能数据存储解决方案.它的特点是高性能.易部署.易使用,存储数据非常方便.MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据 结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面 向对象的查询语言,几乎可以实现类似关系数据库单

zabbix自动发现监控mongo

1: zabbix自动发现mongo监控的端口,并返回zabbix_server需要的格式,脚本部署在zabbix_agent上,路径为/usr/local/zabbix/zabbix_discover_mongo.sh,脚本内容如下: #!/bin/sh #zhuangweihong 20160419 zabbix discover mysql res=`sudo ss -tulnp|grep mongo|grep -v 28107|awk '{print $(NF-2)}'|awk -F':

数据更新+加载列表+删除数据

此项目实例为springMVCDB 一.数据检索更新 分析:要实现的效果是在第一个页面文本框中输入一个数值,点击检索,然后在第二个页面的文本框中显示.然后在这个文本框中输入新数据,点击更新按钮,数据库中的文件及文本框中的数据被改写.需要注意的是此操作是检索的userid,而要更新的则是它对应的username的值. 功能实现思路: 先实现数据更新,即在控制中用searchUser的方法实例化一个存放结果集的bean.然后是进行数据改写,就是实例化一个update的方法,将结果给bean.并用一个

数据更新、视图的创建与修改

一.实验目的 1.学会使用INSERT.UPDATE.DELETE等SQL语句进行数据更新: 2.学会使用CREATE.DROP等SQL语句创建和删除视图. 二.实验内容 1.在SQL Server Management Studio中使用INSERT.UPDATE.DELETE语句进行数据更新. 2.在SQL Server Management Studio中使用CREATE.DROP语句创建和删除视图. 三.实验步骤 1.利用SQL Server Management Studio在数据库S

node-mongo-native1.3.19连接mongo的最优方法

最近需要在node下连接mongo,尝试了很多方法,本文简要总结一下 选择Driver 首先,基本上有4个常见的driver供选择 1.官方的是node-mongo-native 2.基于node-mongo-native,封装的mongoose,是一个ODM小框架 3.kiss小组同样基于node-mongo-native封装的mongoskin 4.mongojs mongoose要求使用Document Schema,我们目前没有这个需求,所以不想用:mongoskin网上评价还可以,但是