mongdb的更新深入
来源:互联网 发布:windows双网卡配置种类 编辑:程序博客网 时间:2024/06/11 02:13
db.库名.update( {title:'MongDB'},true ) (如果不存在就更新进去)
db.库名.update( {title:'MongDB'},{$set{title:'MongDB教程'}},false,true ) (把所有title是MongDB的全部更新为MongDB教程)
数据更新操作符
1.$inc
用法:{$inc:{field:value}}
作用:对一个数字字段的某个field增加value
示例:将name为chenzhou的学生的age增加5
> db.students.find()
{ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou", "age" : 22 }
#查询结果显示年龄为22
> db.students.update({name:"chenzhou"},{$inc:{age:5}})
#执行修改,把age增加5
> db.students.find()
{ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou", "age" : 27 }
>
#查询结果显示年龄为27,修改成功
2.$set
用法:{$set:{field:value}}
作用:把文档中某个字段field的值设为value
示例: 把chenzhou的年龄设为23岁
> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou", "age" : 27 }> db.students.update({name:"chenzhou"},{$set:{age:23}})> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou", "age" : 23 }>从结果可以看到,更新后年龄从27变成了23
3.$unset
用法:{$unset:{field:1}}
作用:删除某个字段field
示例: 将chenzhou的年龄字段删除
> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou", "age" : 23 }> db.students.update({name:"chenzhou"},{$unset:{age:1}})> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou" }
4.$push
用法:{$push:{field:value}}
作用:把value追加到field里。注:field只能是数组类型,如果field不存在,会自动插入一个数组类型
示例:给chenzhou添加别名"michael"
> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou" }> db.students.update({name:"chenzhou"},{$push:{"ailas":"Michael"}})> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "Michael" ], "name" : "chenzhou" }由结果可以看到,记录中追加了一个数组类型字段alias,且字段有一个为"Michael"的值
5.pushAll
用法:{$pushAll:{field:value_array}}
作用:用法同$push一样,只是$pushAll可以一次追加多个值到一个数组字段内。
示例:给chenzhou追加别名A1,A2
> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "Michael", "A1", "A2" ], "name" : "chenzhou" }> db.students.update({name:"chenzhou"},{$addToSet:{"ailas":["A3","A4"]}})> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "Michael", "A1", "A2", [ "A3", "A4" ] ], "name" : "chenzhou" }
6.$addToSet
用法:{$addToSet:{field:value}}
作用:加一个值到数组内,而且只有当这个值在数组中不存在时才增加。
示例:往chenzhou的别名字段里添加两个别名A3、A4
> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "Michael", "A1", "A2" ], "name" : "chenzhou" }> db.students.update({name:"chenzhou"},{$addToSet:{"ailas":["A3","A4"]}})> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "Michael", "A1", "A2", [ "A3", "A4" ] ], "name" : "chenzhou" }
由结果可以看出,更新后ailas字段里多了一个对象,这个对象里包含2个数据,分别是A3、A4
7.$pop
用法:删除数组内第一个值:{$pop:{field:-1}}、删除数组内最后一个值:{$pop:{field:1}}
作用:用于删除数组内的一个值
示例: 删除chenzhou记录中alias字段中第一个别名
> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "Michael", "A1", "A2", [ "A3", "A4" ] ], "name" : "chenzhou" }> db.students.update({name:"chenzhou"},{$pop:{"ailas":-1}})> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "A1", "A2", [ "A3", "A4" ] ], "name" : "chenzhou" }>
由结果可以看书,第一个别名Michael已经被删除了。
我们再使用命令删除最后一个别名:
> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "A1", "A2", [ "A3", "A4" ] ], "name" : "chenzhou" }> db.students.update({name:"chenzhou"},{$pop:{"ailas":1}})> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "A1", "A2" ], "name" : "chenzhou" }>
由结果可以看出,alias字段中最后一个别名["A3","A4"]被删除了。
8.$pull
用法:{$pull:{field:_value}}
作用:从数组field内删除一个等于_value的值
示例:删除chenzhou记录中的别名A1
> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "A1", "A2" ], "name" : "chenzhou" }> db.students.update({name:"chenzhou"},{$pull:{"ailas":"A1"}})> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "A2" ], "name" : "chenzhou" }>
9.$pullAll
用法:{$pullAll:value_array}
作用:用法同$pull一样,可以一次性删除数组内的多个值。
示例: 删除chenzhou记录内的所有别名
> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "A1", "A2" ], "name" : "chenzhou" }> db.students.update({name:"chenzhou"},{$pullAll:{"ailas":["A1","A2"]}})> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ ], "name" : "chenzhou" }>
可以看到A1和A2已经全部被删除了
10.$rename
用法:{$rename:{old_field_name:new_field_name}}
作用:对字段进行重命名
示例:把chenzhou记录的name字段重命名为sname
> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ ], "name" : "chenzhou" }> db.students.update({name:"chenzhou"},{$rename:{"name":"sname"}})> db.students.find(){ "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ ], "sname" : "chenzhou" }>
由结果可以看出name字段已经被更新为sname了。
转载:http://www.cnblogs.com/yu-zhang/p/5210966.html
- mongdb的更新深入
- mongdb的查询深入
- mongdb的插入深入
- mongdb 的更新,安装以及使用
- 更新的深入内容
- mongdb的基本使用
- mongdb的基本使用
- MongDb的增删改
- 单纯的Mongdb学习
- Mongdb的常用命令
- MongDb的增删改
- mongdb
- mongdb
- MongDB
- Mongdb
- mongdb
- mongdb
- MongDB 的适用场景之一
- heatbeat s实现 HA
- 灰色预测模型实现原理
- java基础--输出数组中指定元素的下标
- USB2.0之speed是如何确定的
- jq ajax运用
- mongdb的更新深入
- 指向指针的指针做函数的参数
- 跟我学TCP/IP系列7
- 《软技能 代码之外的生存指南》
- 【编程题】二叉树最近公共父亲节点
- 通讯录2.0(动态实现)
- 数据结构(c语言版)学习笔记——排序算法
- JQ原理
- 数据库中间件MyCAT源码分析:【单库单表】插入