mongodb学习2---常用命令解析
1,mongodb insert()和save()的相同点和区别
区别:若新增的数据中存在主键 ,insert() 会提示错误,而save() 则更改原来的内容为新内容。
insert({_id : 1, " name " : " n2 " }) 会报主键重复的错误提示。
save({ _id : 1, " name " : " n2 " }) 会把 n1 修改为 n2 。
相同点:若新增的数据中没有主键时,会增加一条记录。
2,update命令
update命令格式:
db.collection.update(criteria,objNew,upsert,multi)
参数说明:
criteria:查询条件
objNew:update对象和一些更新操作符
upsert:如果不存在update的记录,是否插入objNew这个新的文档,true为插入,默认为false,不插入。
multi:默认是false,只更新找到的第一条记录。如果为true,把按条件查询出来的记录全部更新。
举例:
db.classes.update({"count":{$gt:20}},{$set:{"name":"c4"}},false,true)
2.1数据更新操作符
(1)$inc
用法:{$inc:{field:value}}
作用:对一个数字字段的某个field增加value
示例:将name为chenzhou的学生的age增加5
db.students.update({name:"chenzhou"},{$inc:{age:5}})
(2)$set
用法:{$set:{field:value}}
作用:把文档中某个字段field的值设为value
db.students.update({name:"chenzhou"},{$set:{age:23}})
(3)$unset
用法:{$unset:{field:1}}
作用:删除某个字段field
(4)$push
用法:{$push:{field:value}}
作用:把value追加到field里。注:field只能是数组类型,如果field不存在,会自动插入一个数组类型
db.students.update({name:"chenzhou"},{$push:{"ailas":"Michael"}})
其余更多数据更新操作符:
http://chenzhou123520.iteye.com/blog/1637629
1查询条件
(1)$lt,$lte,$gt,$gte,$ne
db.user.find({username:{$ne:'zyb'}})
(2)or查询
db.user.find({$or:[{uid:725},{name:'zyb'}]})
2,distinct用法
db.runCommand({"distinct":"foo","key":"name","query":{"age":{"$gt":20}}})
3,group用法
db.sendclick.group({key:{idfa:1},cond:{cd:20160601,id:"xxxx"},reduce:function(obj,prev){prev.cnum++},initial:{cnum:0}}).forEach(
function(x){
if(x.cnum > 3){
print(x.idfa);
print(x.cnum);
}
}
)
4,find后插入一个新表
db.active.find({cd:{$lt:20160602}}).forEach(
function(x){
db.temp_active20160602idfa.insert({_id:x.idfa,cid:x.cid,cd:x.cd})
}
)
mongodb学习2---常用命令解析的更多相关文章
- MongoDB学习笔记—常用命令
这里记录一下MongoDB常用的命令 数据库相关 创建数据库 use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库. 删除数据库:切换到要删除的数据库下,执行命令即 ...
- 一张图学习vim常用命令
一张图学习vim常用命令
- angular-cli.json配置参数解析,常用命令解析
1.angular-cli.json配置参数解析 { "project": { "name": "ng-admin", //项目名称 &qu ...
- goland学习-go常用命令使用
goland学习-go常用命令使用 1.跨平台编译:env GOOS=linux GOARCH=amd64 go build 2.获取go第三方包:go get -u github.com/go-sq ...
- Maven学习归纳(二)——几个常用命令解析
Maven的常用命令 第一次执行命令的时候,因为需要下载执行命令的基础环境,所以会从远程仓库下载该环境到本地仓库中 运行mvn命令,必须在pom.xml文件所在的目录 一. JavaProject的p ...
- MongoDB与Mysql常用命令解释
原文 本文旨在介绍MongoDB,Mysql的常用命令:将MongoDB 和传统的关系型数据库的常用命令对照起来学习,更加便于记忆和理解. MongoDB是由数据库(database/reposito ...
- mongodb系列~mongo常用命令
mongodb常用命令大全1 索引相关命令 db.chenfeng.ensureIndex({"riqi":1}) 添加索引会阻塞nohup mongo --eval " ...
- linux系统入门一些常用命令解析
接触IT行业的时候,就使用了ubuntu系统做开发,那个时候是一头雾水,从习惯了window下的界面操作,到终端下的命令行操作,着实一开始让人很不习惯.但是没办法,那个时候公司每个人都用Ubuntu系 ...
- Redis学习笔记--常用命令
以下为本人学习Redis的备忘录,记录了大部分常用命令 1.客户端连接redis服务端: ===启动Redis服务端 redis-server /yourpath/redis.conf ===启动Re ...
随机推荐
- Emit动态生成代码
Emit动态生成代码 引用:秒懂C#通过Emit动态生成代码 首先需要声明一个程序集名称, // specify a new assembly name var assemblyName = new ...
- [转载]堆排序(HeapSort) Java实现
堆排序的思想是利用数据结构--堆.具体的实现细节: 1. 构建一个最大堆.对于给定的包含有n个元素的数组A[n],构建一个最大堆(最大堆的特性是,某个节点的值最多和其父节点的值一样大.这样,堆中的最大 ...
- linux的文件种类与扩展名
一.文件种类: 1.普通文件(regular file)第一个字符为[ - ] 包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档.是因为内容为我们人类可以直接读到的 ...
- 打开jnlp Faild to validate certificate, the application will not be executed.
今天连jenkins, 本来好好的,只是我在一台机器上一直不断的启动不同的jnlp,绑定不同命名的slave, 然后突然就报错了, 如下截图所示:
- 文件比对工具(Beyond Compare)
文件比对工具: 工具名称:Beyond Compare 版本号:v3.3.13 下载地址:http://i.cnblogs.com/Files.aspx 官网最新版本下载地址:http://www.s ...
- ServiceStack 介绍
关于ServiceStack ServiceStack 官网介绍: Opensource .NET and Mono REST Web Services framework 什么是 ServiceSt ...
- Java--解决java compiler level does not match the version of the installed java project facet错误
从网上下载了个项目,导入eclipse时发现如下错误: 检查后发现原来是JDK版本不一致的问题,项目的默认JDK配置是1.5,而自己电脑上是1.7. 需要修改两个地方的配置,如下图所示: 修改一: 修 ...
- Tomcat--配置tomcat,使其除了接受本地访问外,拒绝其他 IP 的访问
解决方案:修改server.xml文件,在</host>前添加代码: <Valve className="org.apache.catalina.valves.Remote ...
- [Node.js] 也说this
原文地址:http://www.moye.me/2014/11/21/也说this/ 引子 Any sufficiently advanced technology is indistinguisha ...
- Robot Framework自动化测试(二)---元素定位
说明: 不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加入了seleni ...