mongodb更新操作
除了查询条件,还可以使用修改器对文档进行更新。 1. $inc > db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "name" : "xtt", "age" : 11 }
> db.tianyc03.update({name:'xtt',age:11},{'$inc':{age:5}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "name" : "xtt", "age" : 16 } #$inc还可以添加列。 > db.tianyc04.find()
{ "_id" : ObjectId("510c83ad13d7e50c2281b048"), "wc" : 1 }
> db.tianyc04.update({wc:1},{$inc:{score:50}})
> db.tianyc04.find()
{ "_id" : ObjectId("510c83ad13d7e50c2281b048"), "score" : 50, "wc" : 1 }
> 2. $set 用来指定一个键的值,若该键不存在,则创建。如果需要删除该键,使用$unset。 #新增加列sex
> db.tianyc03.update({name:'xtt',age:16},{$set:{sex:'m'}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "name" : "xtt", "sex" : "m" }
#修改列sex
> db.tianyc03.update({name:'xtt',age:16},{$set:{sex:'male'}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "name" : "xtt", "sex" : "male" }
#改变列sex数据类型
> db.tianyc03.update({name:'xtt',age:16},{$set:{sex:1}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "name" : "xtt", "sex" : 1 }
#删除列sex
> db.tianyc03.update({name:'xtt',age:16},{$unset:{sex:1}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "name" : "xtt" } 3. $push 用来增加数组。若没有改列,则会自动增加。 > db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "name" : "xtt" } > db.tianyc03.update({'name':'xtt'},{$push:{companies:'neu'}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "companies" : [ "neu" ], "name" : "xtt" } > db.tianyc03.update({'name':'xtt'},{$push:{companies:'alibaba'}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "companies" : [ "neu", "alibaba" ], "name" : "xtt" } 4. $addToSet #push操作不会检查数组中元素是否重复,如果需要将不重复的数据加入数组,需要使用$addToSet > db.tianyc03.update({'name':'xtt'},{$addToSet:{companies:'alibaba'}}) > db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "companies" : [ "neu", "alibaba", "alibaba" ], "name" : "xtt" }
> db.tianyc03.update({'name':'xtt'},{$addToSet:{companies:'congxing'}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "companies" : [ "neu", "alibaba", "alibaba", "congxing" ], "name" : "xtt" }
> db.tianyc03.update({'name':'xtt'},{$addToSet:{companies:'congxing'}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "companies" : [ "neu", "alibaba", "alibaba", "congxing" ], "name" : "xtt" }
> 5. $pop 通过$pop可以从数组中移除数据。此时数据被看成是一个队列。使用{$pop:{key:1}}将从队列末尾移除元素,使用{$pop:{key:-1}}将从队列开头移除元素。 > db.tianyc03.update({'name':'xtt'},{$addToSet:{companies:['c1','c2']}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "companies" : [ "neu", "alibaba", "alibaba", "congxing", [ "c1", "c2" ] ], "name" : "xtt" } > db.tianyc03.update({'name':'xtt'},{$pop:{companies:1}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "companies" : [ "neu", "alibaba", "alibaba", "congxing" ], "name" : "xtt" }
>
> db.tianyc03.update({'name':'xtt'},{$pop:{companies:-1}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "companies" : [ "alibaba", "alibaba", "congxing" ], "name" : "xtt" }
> 6. $pull 除了 $pop,也可以使用 $pull 来删除数组中的元素,此时可以根据元素值进行匹配,将匹配上的元素全部删除。 > db.tianyc03.update({'name':'xtt'},{$addToSet:{companies:'teletek'}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "companies" : [ "alibaba", "alibaba", "congxing", "teletek" ], "name" : "xtt" }
> db.tianyc03.update({},{$pull:{companies:'congxing'}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "companies" : [ "alibaba", "alibaba", "teletek" ], "name" : "xtt" } > db.tianyc03.update({},{$pull:{companies:'alibaba'}})
> db.tianyc03.find()
{ "_id" : ObjectId("50ea6b6f12729d90ce6e341b"), "age" : 16, "companies" : [ "teletek" ], "name" : "xtt" }
>
转自:http://www.cnblogs.com/yuechaotian/archive/2013/02/04/2890266.html
mongodb更新操作的更多相关文章
- MongoDB——更新操作(Update)c#实现
c#实现 Mongodb存储[文档局部更新] 如下: 递归更新字段 ,构建UpdateDefinition /// <summary> /// 构建更新操作定义 /// &l ...
- [转]MongoDB更新操作replaceOne()实例讲解
最近正在学习MongoDB,作为数据库的学习当然是要从CRUD开始学起了.这篇文章默认读者是知道如何安装MongoDB.如何运行MongoDB实例以及了解了MongoDB中的collection.do ...
- mongodb 更新操作
db.aaaa.update({},{$push:{money:{$each:[8,9,10],$slice:-4}}}) db.aaaa.update({},{$addToSet:{money:{$ ...
- MongoDB 文档的更新操作
在MongoDB中,更新单个doc的操作是原子性的.默认情况下,如果一个update操作更新多个doc,那么对每个doc的更新是原子性的,但是对整个update 操作而言,不是原子性的,可能存在前面的 ...
- java操作mongodb——更新数据
Java中可以通过updateOne,updateMany,replaceOne方法进行集合的文档更新.但是 _id 是不能更新的 updateOne只会更新一条数据,即使通过Filters.lt(& ...
- Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作
2 Mongodb CRUD 操作 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mong ...
- [MongoDB]入门操作
摘要 在工作中也经常使用mongodb,每次遇到新的操作都需要去查,比较麻烦,准备在博客中系统的学习一下mongodb.首先在本地安装mongodb环境,可以下载一个windows的版本. 官网地址 ...
- MongoDB常用操作一查询find方法db.collection_name.find()
来:http://blog.csdn.net/wangli61289/article/details/40623097 https://docs.mongodb.org/manual/referenc ...
- mongodb高级操作及在Java企业级开发中的应用
Java连接mongoDB Java连接MongoDB需要驱动包,个人所用包为mongo-2.10.0.jar.可以在网上下载最新版本. package org.dennisit.mongodb.st ...
随机推荐
- Apache Shiro系列之五,概述 —— 配置
Shiro设计的初衷就是可以运行于任何环境:无论是简单的命令行应用程序还是复杂的企业集群应用.由于运行环境的多样性,所以有多种配置机制可用于配置,本节我们将介绍Shiro内核支持的这几种配置机制. ...
- FineUI(专业版)v1.2.0 和 FineUI(开源版)v4.1.1 同时发布!
FineUI(开源版)v4.1.1 (建议所有 v4.x 升级到此版本):http://fineui.com/demo/ +2014-08-15 v4.1.1 -修正Form中表单字段设 ...
- Sort using in VS
- Android studio下使用SharedSDK
原贴出自:http://bbs.mob.com/thread-5148-1-1.html 首先新建了一个项目用来演示集成ShareSDK 下载好了ShareSDK之后,我们按照下面的步骤使用快 ...
- 解决 PHPExcel 长数字串显示为科学计数
解决 PHPExcel 长数字串显示为科学计数 在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法,例如身份证号码,解决方法是把表格设置文本格式或在输入前加一个单引号. ...
- 【抓包工具】wireshark
wireshark下载地址:http://download.csdn.net/detail/victoria_vicky/8819777 一.wireshark优劣势 wireshark劣势:只能查看 ...
- HTTP原型
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- ORB-SLAM(三)地图初始化
单目SLAM地图初始化的目标是构建初始的三维点云.由于不能仅仅从单帧得到深度信息,因此需要从图像序列中选取两帧以上的图像,估计摄像机姿态并重建出初始的三维点云. ORB-SLAM中提到,地图初始化常见 ...
- 【Beta版本】七天冲刺集结令
031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬涛 [Bet ...
- Logistic Regression - Formula Deduction
Sigmoid Function \[ \sigma(z)=\frac{1}{1+e^{(-z)}} \] feature: axial symmetry: \[ \sigma(z)+ \sigma( ...