Mangos笔记
$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笔记的更多相关文章
- git-简单流程(学习笔记)
这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- SQL Server技术内幕笔记合集
SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- NET Core-学习笔记(三)
这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...
- springMVC学习笔记--知识点总结1
以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
随机推荐
- h2database.com 高级特性
http://www.h2database.com/html/advanced.html http://www.h2database.com/html/features.html
- Application Fundamentals
Application Fundamentals 署名:译言biAji 链接:http://developer.android.com/guide/topics/fundamentals.html 应 ...
- Ibatis 3.0 之前使用的都是2.0 3.0与2.0的内容有很大的不同
以前用过ibatis2,但是听说ibatis3有较大的性能提升,而且设计也更合理,他不兼容ibatis2.尽管ibatis3还是beta10的状态,但还是打算直接使用ibatis3.0, ibatis ...
- A/C模式 是什么意思啊汽车知识问题_PCauto快问
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- Quick Cocos2dx 与 Eclipse 连真机debug遇到的问题
今天下午解决了因为偷懒一直忍受的两个让我不爽很久了的问题: 1Eclipse无法连接手机调试的问题. 在设备管理器中看到的Android设备有黄色的感叹号, 说明驱动不是最新的. 按照网上搜到的解决方 ...
- 在win10环境下安装eclipse mars版本
1下载eclipse软件.下载地址:http://www.eclipse.org/downloads/ 不要下载.exe文件.直接下载安装包,下载对应的安装包,我下载的是这个Eclipse IDE f ...
- [Unity c#]c#中的反射
什么是反射 在.NET中的反射也可以实现从对象的外部来了解对象(或程序集)内部结构的功能,哪怕你不知道这个对象(或程序集)是个什么东西,另外.NET中的反射还可以运态创建出对象并执行它其中的方法. 反 ...
- 《数据结构与算法分析:C语言描述》读书笔记------练习1.1 求第K大的数
求一组N个数中的第k个最大者,设k=N/2. import java.util.Random; public class K_Max { /** * @param args */ //求第K大的数,保 ...
- IIS日志路径,修改存放位置,清除日志方法
IIS存放日志文件的默认存储路径是c:\windows\system32\logfiles 我们依次打开“我的电脑”,C盘,Windows文件夹,system32文件夹,logfiles文件夹,发现里 ...
- jstree使用小结(一)
项目中用到tree结构,使用了jstree做个笔记如下: 1. 官网: http://www.jstree.com/ 有时候打不开,那就只能等打得开的时候再看了...O(∩_∩)O [PS: 一 ...