mongodb修改器(转)
MongoDB 修改器
对文档中的某些字段进行更新
$inc
专门用来增加(或减少)数字的,只能用于整数,长整数或双精度浮点型的值$inc键的值必须为数字,不能使用字符串,数组或其他非数字的值
如果键不存在,则创建它
1 |
db.user.update({}, {"$inc":{"age":1}});
|
$set
用来指定一个字段的值, 字段不存在则创建.
1 |
db.user.update({},{"$set":{"name":"mike"}})
|
$set 也可以用于改变键的类型
1 |
db.user.update({}, {"$set":{"name":["mike","wang"]}})
|
unset
用于删除一个键
1 |
db.user.update({},{"$unset":{"age":1}})
|
数组修改器
$push
如果数组已存在,添加元素到数组末尾,否则创建它
1 |
db.blog.update({}, {"$push":{"authors":"mike"}})
|
使用$each 添加多个值
1 |
db.blog.update({},{"$push":{"authors":{"$each":["mike", "wang"]}}})
|
限制数组的最大长度 ‘$slice’, 只包含最后加入的限制长度的元素,必须为负整数,$slice相对于在文档中创建了一个队列
1 |
db.blog.update( |
$sort 对数组中的所有对象进行排序
1 |
db.blog.update( |
$slice, $sort 必须配合 $each 与 $push使用
$addToSet
保证数组中的元素不重复
1 |
db.user.update({},{"$addToSet":{"name":"mike"}})
|
与$each组合添加多个元素
1 |
db.user.update({},{"$addToSet":{"name":{"$each":["mike", "wang"]}}})
|
$pop
从数组中删除元素,此时数组相当于队列或栈,只能从一端删除
1 |
// 从头部删除 |
$pull
删除所有匹配的文档
1 |
db.user.update({},{"pull":{"name": "mike"}})
|
数组操作符必须作用于包含数组值的键
基于位置的数组修改器
数组下标(从0开始)
1 |
db.blog.update({}, {"set":{"comments.0.name": "mike"})
|
## 定位操作符 $
1 |
db.blog.update( |
定位操作符只更新第一个匹配的元素
upsert
如果没有找到匹配的文档,那么以查询条件和更新文档为基础创建新的文档;找到则正常更新update的第三个参数表示这是个upsert
1 |
db.user.update( |
setOnInsert
在创建文档时创建字段并赋值, 在更新的时候不做任何改变
1 |
db.user.update( |
更新多个文档, 指定update的第四个参数为 true
findAndModify 返回被更新的文档
1 |
db.user.findAndModify({
|
update 和 remove 有且只有一个, 能与findAndModify 一起使用的字段有:
- query
查询文档的条件 - sort
排序的条件 - update
文档更新 - remove
删除文档,布尔类型 - new
表示返回更新前还是更新后的文档,布尔类型,默认false, 更新前的文档 - fields
文档中需要返回的字段 - upsert
true为upsert, 默认false
转自http://wangming1993.github.io/2015/12/15/mongo-modifier/
mongodb修改器(转)的更多相关文章
- mongodb修改器
mongodb修改器 转载自:http://blog.csdn.net/mcpang/article/details/7752736 mongodb修改器(\(inc/\)set/\(unset/\) ...
- 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修改器总结
1"$set":用来制定一个字段值,若不存在,则创建: 一般用于点加一个字段 db.users.update({name:"joe"},{" ...
- 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}}) / ...
随机推荐
- easyui中的依赖关系
参考自:http://www.easyui.info/archives/765.html 在使用easyui的过程中发现各个组件直接存在依赖关系,也就是上层的复杂组件依赖于一个或者多个简单组件,复杂组 ...
- 【C++ 拾遗】C++'s most vexing parse
C++'s most vexing parse 是 Scott Meyers 在其名著<Effective STL>中创造的一个术语. Scott 用这个术语来形容 C++ 标准对于 de ...
- BZOJ2756 [SCOI2012]奇怪的游戏 【网络流 + 二分】
题目 Blinker最近喜欢上一个奇怪的游戏. 这个游戏在一个 N*M 的棋盘上玩,每个格子有一个数.每次 Blinker 会选择两个相邻 的格子,并使这两个数都加上 1. 现在 Blinker 想知 ...
- 禅与园林艺术(garden)
禅与园林艺术(garden) 上了大学之后,小W和小Z一起报了一门水课,在做作业时遇到了问题. 有一个长度为nn的数列{ai},为一列树木的美观值. 现在有mm次询问,每次给出三个数l,r,p 询问对 ...
- hdu6188&&百度之星初赛(B) T5
度度熊的交易计划 Problem Description 度度熊参与了喵哈哈村的商业大会,但是这次商业大会遇到了一个难题: 喵哈哈村以及周围的村庄可以看做是一共由n个片区,m条公路组成的地区. 由于生 ...
- javascript jquery document.ready window.onload
网易 博客 下载LOFTER客户端 注册登录 加关注 凡图的编程之路 2012年7月从一个编程新手的点点滴滴 首页 日志 LOFTER 相册 博友 关于我 日志 关于我 Holy ...
- ClientScript.RegisterClientScriptBlock 不执行
ClientScript.RegisterClientScriptBlock 不执行 页面中 form标签必须加入 runat=server
- 小Z爱划水(NOIP信(sang)心(bin)赛)From FallDream
题目: 小Z在机房.他和其它机房同学都面临一个艰难的抉择,那就是 要不要划水? 每个人都有自己的一个意见,有的人想做题,有的人想划水. 当然,每个人只能选择一个事情做.如果一个人做的事情和他想做的不同 ...
- Error C1189: #error: Please use the /MD switch for _AFXDLL builds(转)
原文转自 https://www.cnblogs.com/zwh0214/p/6048360.html 在VS 2013中编译程序时出现错误: 错误提示1: error C1189: #error : ...
- v4l2驱动文档之——streaming IO【转】
转自:http://blog.csdn.net/zoe6553/article/details/17715441 v4l2驱动编写篇第六B--流输入输出 在本系列文章的上一期中,我们讨论了如何通过re ...