MongoDB修改器总结
1"$set":用来制定一个字段值,若不存在,则创建;
一般用于点加一个字段
db.users.update({name:"joe"},{"$set":{"favorite book":"War and Peace"}})
还可以修改一个字段
db.users.update({name:"joe"},{"$set":{"favorite book":"Your"}})
还可以删除
db.users.update({name:"joe"},{"$unset":{"favorite book":"Your"}})
2"$inc":增加或者减少
用来增加已有的键的值,不存在则创建一个,比如某网站的访问量
db.users.update({name:"joe"},{"$inc":{"score":1}})
每次访问都会增加1
3"$push":会向已有的数组末尾添加一个元素,要是没有,创建一个新的数组。
比如要添加一个评论:
db.users.update({name:"joe"},{"$push":{"comments":{"name":"joe","email":"joe@yahoo.com","conment":"nice"}}})
还想添加,继续修改即可
db.users.update({name:"joe"},{"$push":{"comments":{"name":"bob","email":"bob@yahoo.com","conment":"good"}}})
4."$each"
"$each"与"$push"结合,可以操作复杂的数组。可以一次添加多个值
var users={"username":"joe",
"email":[
"joe@example.com",
"joe@exam.com",
"joe@yahoo.com"]}
db.users.insert(users)
db.users.find()
db.users.update({"username":"joe"},
{"$addToSet":{"email":"joe@mail.com"}})
db.users.update({"username":"joe"},
{"$addToSet":{
"email":{
"$each":["joe@qq.com","joe@Hadoop.com","joe@python.com"]}}})
结果展示:
{
"_id" : ObjectId("57600ffd73b4b5108cfff9b0"),
"username" : "joe",
"email" : [
"joe@example.com",
"joe@exam.com",
"joe@yahoo.com",
"joe@mail.com",
"joe@qq.com",
"joe@Hadoop.com",
"joe@python.com"
]
}
5"$pop""$pull"删除元素的方法。类似于堆栈中的出栈操作
db.lists.insert({"todo":["dishes","laundry","dry cleaning"]})
db.lists.find()
db.lists.update({},{"$pull":{"todo":"laundry"}})
6基于位置的修改可以使用定位操作符"$"
如: db.blog.plogs.update({"post","post_id"},
{"$inc":"comments.0.votes":1})
实际在数据库中,数组的下标很难确定,我们采用
db.blog.update({"comments.author":"Jim"},
{"$set":{"comments.$.author":"Wade"}})
MongoDB修改器总结的更多相关文章
- mongodb修改器
mongodb修改器 转载自:http://blog.csdn.net/mcpang/article/details/7752736 mongodb修改器(\(inc/\)set/\(unset/\) ...
- mongodb修改器(转)
MongoDB 修改器 对文档中的某些字段进行更新 $inc 专门用来增加(或减少)数字的,只能用于整数,长整数或双精度浮点型的值$inc键的值必须为数字,不能使用字符串,数组或其他非数字的值如果键不 ...
- Mongodb更新数组$pull修饰符 (mongodb 修改器($inc/$set/$unset/$push/$pop/upsert))
mongodb 修改器($inc/$set/$unset/$push/$pop/upsert)) https://www.jb51.net/article/112588.htm http://bl ...
- MongoDB修改器的使用1
为什么要使用修改器? 通常我们只会修改文档的一部分,这时候更新整个文档就显得很麻烦,通常是通过原子性的更新修改器来完成. 1."$set"修改器 "$set ...
- mongoDB 修改器()
-----------------------------------2016-5-26 15:56:57-- source:[1],MongoDB更新操作符
- MongoDB修改器的使用2
1."$inc"的使用 主要用来增加数值,比如网站的访问量,点击量,流量等 db.games.insert({game:"pinball",user:" ...
- mongodb的修改器
在mongodb中通常文档只会有一部分要更新,利用原子的更新修改器,可以做到只更新文档的一部分键值,而且更新极为高效,更新修改器是种特殊的键,用来指定复杂的更新操作,比如调整.增加.或者删除键,还可以 ...
- [转载]MongoDB的$inc修改器
MongoDB的$inc修改器相当于编程语言中的 “+=”“$inc”只能用于操作数值类型的数据,包括整数.长整数和双精度浮点数,用于其他类型的数据会导致操作失败. >db.users.find ...
- MongoDB之修改器
MongoDB之修改器 $set 简单粗暴 {name: valuel} 直接将key对应的值赋值给value. db.xxoo.insert({}, {set: {key: value}}) / ...
随机推荐
- berkeley db中 dirty read的实现
dirty reader怎样 不被writor block住? 如数据库支持dirty read, 则 所有打开的dbhandle都配置 DB_READ_UNCOMMITTED; 在线程拿到 writ ...
- javascript练习-子类调用父类的构造函数和方法
function NonNullSet(){ Set.apply(this,arguments); } NonNullSet.prototype = inherit(Set.prototype); N ...
- centos 6.X minimal 系列最小化安装完成后,安装mono和jexus过程小记录
在使用虚拟机安装minimal版centos运行mono+jexus的时候,遇到了一些坑,记录一下,比如虚拟机访问不了网络,没wget命令没开放80端口,等等小问题,其他网上教程已经有mono+jex ...
- TestNG教程
TestNG教程 http://www.yiibai.com/testng/2013/0916311.html TestNG,3种执行方式: 1.ant(build.xml) 2.Eclipse(安装 ...
- Linux之DNS
DNS服务器配置 一.DNS概述:DNS 是域名系统 (Domain Name System) 的缩写,是一种组织域层次结构的计算机和网络服务命名系统.它的作用是:把域名转换成为网络可以识别的 IP ...
- 改变html中鼠标形状
要修改的属性是: style=”cursor:default” 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 pointer:是手型. crosshair:是十字 ...
- Linux下安装mysql数据库
l 检查是否已安装mysql的相关包 [root@localhost ~]# rpm -qa|grep -i mysql MySQL-server-5.6.19-1.el6.x86_64 MySQL- ...
- IOS 计时器暂停和开始 防止重复点击
-(IBAction)btnClick{ [self starTimer];//开始计时 //[self stopTimer]; } -(NSTimer*)timer{ if (!_timer) { ...
- 网页版视频网站可以用html5来实现吗?
当然可以用html5来实现视频网站,而且html5的诞生完全符合了百度优化,百度蜘蛛对这类的网站友好度非常高,会尽量会给高的权重,但是现在很多做 这类网站的开发还是比较习惯用websocket,这个东 ...
- 我和Java有个约定
2012年8月31日,我在父亲的陪伴下,第一次登上的火车,千里迢迢从老家来到了现代化大都市--西安,目睹着这里的繁华,与从小生活的环境截然的天壤之别,蓦然间问自己,你确定这是想来的地方吗? 依稀记得曾 ...