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---常用命令解析的更多相关文章

  1. MongoDB学习笔记—常用命令

    这里记录一下MongoDB常用的命令 数据库相关 创建数据库 use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库. 删除数据库:切换到要删除的数据库下,执行命令即 ...

  2. 一张图学习vim常用命令

    一张图学习vim常用命令

  3. angular-cli.json配置参数解析,常用命令解析

    1.angular-cli.json配置参数解析 { "project": { "name": "ng-admin", //项目名称 &qu ...

  4. goland学习-go常用命令使用

    goland学习-go常用命令使用 1.跨平台编译:env GOOS=linux GOARCH=amd64 go build 2.获取go第三方包:go get -u github.com/go-sq ...

  5. Maven学习归纳(二)——几个常用命令解析

    Maven的常用命令 第一次执行命令的时候,因为需要下载执行命令的基础环境,所以会从远程仓库下载该环境到本地仓库中 运行mvn命令,必须在pom.xml文件所在的目录 一. JavaProject的p ...

  6. MongoDB与Mysql常用命令解释

    原文 本文旨在介绍MongoDB,Mysql的常用命令:将MongoDB 和传统的关系型数据库的常用命令对照起来学习,更加便于记忆和理解. MongoDB是由数据库(database/reposito ...

  7. mongodb系列~mongo常用命令

    mongodb常用命令大全1 索引相关命令 db.chenfeng.ensureIndex({"riqi":1}) 添加索引会阻塞nohup mongo --eval " ...

  8. linux系统入门一些常用命令解析

    接触IT行业的时候,就使用了ubuntu系统做开发,那个时候是一头雾水,从习惯了window下的界面操作,到终端下的命令行操作,着实一开始让人很不习惯.但是没办法,那个时候公司每个人都用Ubuntu系 ...

  9. Redis学习笔记--常用命令

    以下为本人学习Redis的备忘录,记录了大部分常用命令 1.客户端连接redis服务端: ===启动Redis服务端 redis-server /yourpath/redis.conf ===启动Re ...

随机推荐

  1. jeos没有消亡,但看 debian 的 netinst .iso格式,那就是jeos的系统!

    曾经ubuntu推出专供轻量硬件(如虚拟机)方式的just os格式的.iso [小巧.轻量.快速.干净] 但在 ubuntu 8.04后 再也没有继续 ...... 可惜 不曾想,ubuntu的老爸 ...

  2. Spring MVC 事务配置

    Spring MVC事务配置 要了解事务配置的所有方法,请看一下<Spring事务配置的5种方法> 本文介绍两种配置方法: 一.      XML,使用tx标签配置拦截器实现事务 一.   ...

  3. WeifenLuo组件中如何设置停靠窗体的宽度

    在项目中使用了WeifenLuo.WinFormsUI.Docking组件,窗体停靠效果非常棒. 现在项目出现了这样的需求,希望可以控制停靠窗体的宽度,因为默认的宽度往往会造成停靠窗体的内容显示不完全 ...

  4. 在CodedUI中使用JQuery选择器

    在CodedUI中使用JQuery选择器http://automationqa.com/forum.php?mod=viewthread&tid=3574&fromuid=29

  5. WebApp MVC 框架的开发细节归纳

    在前文<WebApp MVC,“不一样”的轻量级互联网应用程序开发框架>介绍了WebApp MVC的技术实现以及如何使用,而在本章进一步归纳了使用框架开发的一些细节,也给我们在开发具体功能 ...

  6. 封装Js事件代理方法

    // 封装事件代理 function delegateEvent(element, tag, event, listener) { // 判断是否支持addEventlistener if(eleme ...

  7. vmware workstation11+centos7+lnmp一键安装包 环境搭建

    vmware workstation11 1.下载:http://pan.baidu.com/s/1gecipOJ 2.安装:直接下一步. centos7 1.下载:网易镜像 http://mirro ...

  8. windows下mysql远程访问慢

    在my.conf中加入  skip-name-resolve

  9. 介绍WEB站点结构

    在这节里,我们将抛开Umbraco来看看已创建的站点.在我们介绍Umbraco之前,需要了解站点是如何工作的,如何使用使用浏览器工具. 我们看到在标签顶端的内容叫做页面标题.每个页面的标题都会改变表示 ...

  10. 【转载】给VM虚拟机增加硬盘容量

    转载自:http://www.douban.com/note/53678368/ vmware-vdiskmanager [选项]这里的选项你必须包含以下的一些选择项或参数选项和参数描述<dis ...