$lt、$lte、$gt、$gte和$ne

$in、$nin、$or

$mod、$not

$exists

条件句式内层文档的键,修改器是外层文档的键,一个键可以有多个

条件,但是一个键不能对应多个更新修改器

支持正则表达式,采用基于Perl(PCRE)库来匹配

查询数组

$all、$size、$slice

内嵌文档

针对其特定键值进行查询才是好做法,对于数组则采用$elemMatch

利用JS查询

$where

游标

用来返回find的执行结果,客户端可以对其结果进行处理得到想要的集合,

实现的方法有hasNext、next、forEach,当调用find的时候,shell并不立即

查询数据库,而是等待真正要求获得结果的时候才发送查询;结果限制:

limit、skip、sort,需要注意的是利用skip分页很慢,最好利用查询本身条件

来进行分页;获取结果集大小count;利用$snapshot保证内容不被修改

索引

用来加速查询,类似书籍的目录,采用ensureIndex的语法,如果索引包含N个

键,则对前几个键的查询都有帮助,缺点就是每次操作都会产生额外的开销,

一般来说,要是查询要返回集合中一半以上的结果,用表扫描会更高效,故需要

考虑:什么样的查询/哪些需要索引/索引方向/如何让更多数据常驻类型;索引还

可以自定义的名字name、标识唯一索引unique、消除重复dropDups;此外可以利用

explain来获得查询详情,用hint强制使用某个索引。

管理时放到系统的indexes集合中,只能通过ensureIndex和dropIndexes进行操作,

当要修改索引可以利用background让其后台进行处理,当然也可以删除指定名的

索引,如下所示:

db.runCommand({'dropIndexes' : 'foo', 'index' : 'alphabet'})

db.runCommand({'dropIndexes' : 'foo', 'index' : '*'})

地理索引

提供专门的基于坐标平面的索引,区别是ensureIndex中键的值不是-1或1,而是2d,

并且在其中,还可以添加min和max的键来现在大小,但是键的值必须是某种形式的

一对值,可以利用$near和$within/$box/$center来操作查询

聚合

count:返回集合中文档数量

distinct:找出给定键的所有不同的值

group:类似SQL的GROUPBY来将集合按选定键值的不同分组

{

'ns':集合

'key':分组键

$keyf: 对键值调用一次,支持复杂的键值

'initial':传给reduce的初始值

$reduce:每个文档都会调用一次,传递当前文档和累加器文档

'condition':限制条件

'finalize':每组结果传到客户端之前调用,用于修剪结果

}

MapReduce:以上能做的他都能做,他还可以拆分问题,再将各个部分发送到不同的机器上完成,

完成后,再汇集成最终的完整的结果;他需要几个步骤,开始map映射键值对,然后shuffle分组键值,

接下来reduce把列表值简化成单值,然后以该单值继续shuffle和reduce,直到每个键的列表只有一个值

为止,语法如下:

1.mapreduce:集合对象

2.map:键值映射

3.reduce:列表聚合

4.finalize:修剪结果

5.keeptemp:临时结果集是否保存

6.output:临时结果集的名字

7.query:map前的过滤

8.sort:map前的排序

9.limit:map前限制个数

10.scope:JS代码用到的变量

11.verbose:是否产生详尽日志

注意:map/reduce/finalize会忽略代码作用域,而采用自己的scope作用域

Mangos笔记的更多相关文章

  1. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  4. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  5. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  6. NET Core-学习笔记(三)

    这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...

  7. springMVC学习笔记--知识点总结1

    以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...

  8. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  9. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

随机推荐

  1. docker k8s 1.3.8 + flannel

    docker k8s + flannel kubernetes 是谷歌开源的 docker 集群管理解决方案. 项目地址: http://kubernetes.io/ 测试环境: node-1: 10 ...

  2. 用Date.ToString()输出中英文月份

    DateTime.Now.ToString("dddd,dd MMMM,yyyy")//输出   星期三,30 一月,2008DateTime.Now.ToString(" ...

  3. CodeForces 614C Peter and Snow Blower

    简单计算几何,只要算出圆心到多边形上的最短距离和最长距离即可 #include<cstdio> #include<cstring> #include<cmath> ...

  4. log4cxx入门第一篇--一个小例子

    先看官网:http://logging.apache.org/log4cxx/index.html 转载自:http://wenku.baidu.com/view/d88ab5a9d1f34693da ...

  5. Win7下 IIS+PHP(ZendLoader)+MySQL

    这里使用的是傻瓜式安装方式 下载php-5.3.18-nts-Win32-VC9-x86.msi,Win7下可执行文件.(下载地址 http://pan.baidu.com/s/1qvJCA) 执行到 ...

  6. 加载window事件

    $(document).ready()和window.onload的区别 发表于 2012-08-29 由 admin 以浏览器装载文档为例,在页面加载完毕后,浏览器会通过JavaScript为DOM ...

  7. Unity 3d中Shader是什么,可以吃吗?

    众所周知,Unity3d是一款跨平台非常广的游戏引擎,上手容易,界面友好,集成功能众多,是目前开发手游的主流引擎.本人有幸使用Unity 3d进行开发已一年多时间,已领略了这歀引擎的强大之处. 编写s ...

  8. ngx_http_core_module模块提供的变量

    ngx_http_core_module模块在处理请求时,会有大量的变量,这些变量可以通过访问日志来记录下来,也可以用于其它nginx模块.在我们对请求做策略如改写等等都会使用到一些变量,顺便对ngx ...

  9. macbook pro 突破校园网inode客户端限制分享网络

    [原创] 环境: 1. macbook pro (retina) 2. mac os x 10.9 3. H3C inode for mac 7.0 分享方法: 1.打开inode联网. 2.打开设置 ...

  10. [iOS] 响应式编程开发-ReactiveCocoa(二)

    RAC实现图片下载功能 在实现异步RAC下载图片的过程中,需要注意以下几点: • 通过 NSURLConnection 对象的 +(RACSignal *)rac_sendAsynchronousRe ...