一、  高级查询

  1. 查询操作符
    1. 条件操作符:db.collection.find({“field”:{$gt/$lt/$gte/$lte/$eq/$ne:value}});
    2. 匹配所有:db.collection.find({age:{$all:[6,8]}});//字段的数组中符合全部条件才行。
    3. 判断字段存在:db.colletion.find({field:{$exists:true}})//还可用于remove等。
    4. Null值的处理:db.collection.find({field:{“$in”:null,”$exists:true}});
    5. 取模运算:db.colletion.find({field:{$mod:[10,1]}});
    6. $ne不等于
    7. $in包括
    8. $nin不包括    //$ini和$ne的区别就是ini用于数组检测
    9. $size匹配数组元素个数
    10. Count查询记录条数:db.field.find().count();
    11. Skip显示返回记录的起点:db.students.find().skip(4),跳过前面4条
    12. Sort排序
    13. Distinct去重:db.collection.distinct(“field”);查看某字段值的种类。
    14. Group分组统计
  2. 查询语法
    1. 数组内容的查询:通过查询数组的一个属性,可以查出整条文档。
    2. 内嵌文档的查询:查询文档中field字段中name属性可以find({“field.name”:*});
    3. 正则表达式匹配查询
    4. $where查询:命令中不包括where关键字
  3. 联合查询
    1. 步骤

1           u=db.user.findOne({author:“ken”});

2           for(var p=db.posting.find({author:u.author});p.hasNext();) {printjson(p.next().title)};

3           上面的解析:先通过名称找出文档,再通过获得的文档中的名称打印title

  1. 游标和存储过程
    1. 游标:结果缓存再读取
    2. 存储过程

1           声明:db.system.js.save({_id: addNumbers value:funtion(x,y){return x+y}});

2           通过id调用:db.eval(‘addNumbers(3,4)’);

3           声明后直接调用:db.eval(function(){return 3+3});

二、  高级更新

  1. 数据更新命令
    1. Update:db.collection.update(criteria,objNew,upsert,multi)

1           Criteria:此处填写查询条件

2           objNew:用$inc的操作

3           upsert:逻辑操作决定在更新操作的时候,没有符合条件的时候是否插入。

4           multi:按照条件查找的多多条的时候,决定多条记录是否同时更新。

  1. save:如果集合里面有同id的文档,将被覆盖,如果没有,就添加。
  2. 数据更新操作符
    1. $inc:{$inc:{field:value}} //对某个字段的数值作品加法
    2. $set:{$set:{field:value}} //直接修改某个字段的值
    3. $unset:{$unset:{field:1}} //删除字段
    4. $push:{$push:{field:value}} //针对数组类型添加值
    5. $pushAll:{$pushAll:{field:[value1,value2]}} //针对数组类型添加多个值
    6. $addToSet:{$addToSet:{field:[value1,value2]}} //针对数组类型添加数组
    7. $pop:{$pop:{field:-1}} //删除数组内的一个值
    8. $pull:{pull:{field:_value}} //从数组中删除一个等于value的值
    9. $pullAll:{pullAll:{field:[value1,value2]}} //可以一次删除数组内多个值
    10. $rename:{$rename:{old_name:new_name}} //字段重命名
  3. 高级特性
    1. Capped Collection

1           先预定空间的大小,用完之后就老化溢出。

2           发挥最大的性能,在记录日志不应该创建索引。

3           发挥最大的性能,读比写多的时候不要在上面创建索引。

4           Ps:log speed 是快,data speed 慢。

  1. GridFS规范

1           海量存储

  1. 因为BSON的大小限制,大文件会分开。
  2. Files(包括元数据对象),chunks(二进制块)

2           命令行工具

  1. Mongofiles put 上传
  2. Mongofiles get 下载
  3. MapReduce编程模型

1           Map进行分组

2           Reduce聚合计算

3           Result获取结果

4           Finalize格式化输出

5           Options定制输出

mongodb高级应用的更多相关文章

  1. MongoDB高级查询用法大全

    转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册: http://www.mongodb.org/d ...

  2. DataBase MongoDB高级知识-易使用

    MongoDB高级知识-易使用 mongodb是一个面向文档的数据库,而不是关系型数据库.不采用关系模型主要是为了获取更好的扩展性.当然还有其他的一些好处. 与关系型数据库相比,面向文档的数据库不再有 ...

  3. DataBase MongoDB高级知识-易扩展

    MongoDB高级知识-易扩展 应用程序数据集的大小正在以不可思议的速度增长.随着可用宽带的增长和存储器价格的下跌,即使是一个小规模的应用程序,需要存储的数据也可能大的惊人,甚至超出了很多数据库的处理 ...

  4. DataBase MongoDB高级知识

    MongoDB高级知识 一.mongodb适合场景: 1.读写分离:MongoDB服务采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据.Primary和Secondary ...

  5. mongoDB高级查询$type4array使用解析

    今天在使用mongoDB高级查询$type:符号 -- 4代指Array类型发现一个问题. $type符号: $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. 下面是mong ...

  6. 【mongoDB高级篇③】综合实战(1): 分析国家地震数据

    数据准备 下载国家地震数据 http://data.earthquake.cn/data/ 通过navicat导入到数据库,方便和mysql语句做对比 shard分片集群配置 # step 1 mkd ...

  7. MongoDB高级知识-易使用

    MongoDB高级知识-易使用 mongodb是一个面向文档的数据库,而不是关系型数据库.不采用关系模型主要是为了获取更好的扩展性.当然还有其他的一些好处. 与关系型数据库相比,面向文档的数据库不再有 ...

  8. MongoDB高级知识-易扩展

    MongoDB高级知识-易扩展 应用程序数据集的大小正在以不可思议的速度增长.随着可用宽带的增长和存储器价格的下跌,即使是一个小规模的应用程序,需要存储的数据也可能大的惊人,甚至超出了很多数据库的处理 ...

  9. MongoDB高级知识

    MongoDB高级知识 一.mongodb适合场景: 1.读写分离:MongoDB服务采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据.Primary和Secondary ...

  10. mongoDB 高级查询语法

    http://www.cnblogs.com/ITAres/articles/2084794.html本文参考自官方的手册:http://www.mongodb.org/display/DOCS/Ad ...

随机推荐

  1. jvm系列(六):jvm调优-从eclipse开始

    jvm调优-从eclipse开始 概述 什么是jvm调优呢?jvm调优就是根据gc日志分析jvm内存分配.回收的情况来调整各区域内存比例或者gc回收的策略:更深一层就是根据dump出来的内存结构和线程 ...

  2. 【NLP】条件随机场知识扩展延伸(五)

    条件随机场知识扩展延伸 作者:白宁超 2016年8月3日19:47:55 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有应 ...

  3. Vertica 业务用户指定资源池加载数据

    之前在"Vertica 安装,建库,新建测试用户并授予权限,建表,入库"这篇文章也简单介绍过入库部分的内容. 但之前测试用例若用于生产环境有明显的局限性: 1.是用dbadmin管 ...

  4. PL/sql使用总结

    ①右键表拖入到sql窗口中,可自动生成脚本: ②可以和Excel直接复制粘贴: ③F5查看执行计划: ④有环境变量则用环境变量,否则就会去注册表中找对应的值 ⑤oracle客户端设置编码只是为了告诉数 ...

  5. Python爬虫小白入门(三)BeautifulSoup库

    # 一.前言 *** 上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. ...

  6. .NET 实现并行的几种方式(二)

    本随笔续接:.NET 实现并行的几种方式(一) 四.Task 3)Task.NET 4.5 中的简易方式 在上篇随笔中,两个Demo使用的是 .NET 4.0 中的方式,代码写起来略显麻烦,这不 .N ...

  7. C#——this关键字(2,3)(含求助贴)

    这次来看一看this关键字的第二个用法:将对象作为参数传递到其他方法 ----------------------------------------------------------------- ...

  8. 【WCF】如何将WCF部署到远程服务器

    一.前言       最近需要将自己写的WCF服务部署到远程服务器上,也就是公网上.宿主是IIS,在配置成功之前遇到了很多问题,问题如下: 1. WCF该怎么宿主在IIS上,为何会出现 400 Bad ...

  9. ASP.net MVC 文件下载的几种方法(欢迎讨论)

    在ASP.net MVC 中有几种下载文件的方法 前提:要下载的文件必须是在服务器目录中的,至于不在web项目server目录中的文件下载我不知道,但是还挺想了解的. 第一种:最简单的超链接方法,&l ...

  10. 记录一次bug解决过程:resultType和手动开启事务

    一.总结 二.BUG描述:MyBatis中resultType使用 MyBatis中的resultType类似于入参:parameterType.先看IDCM项目中的实际使用案例代码,如下: // L ...