mongodb入门教程二
title: mongodb入门教程二
date: 2016-04-07 10:33:02
tags:
上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高级功能
mongodb 投影
投影听上去挺吓人的,很多人和我一样看了这个词就不想往下继续看了,其实也没有那么唬人,接着往下看什么是投影
投影:mongodb 投影意思是只选择必要的数据而不是选择一个文件的数据的整个。如果一个文档有5个字段,需要显示只有3个,然后选择其中只有3个字段。
语法如下
db.COLLECTION_NAME.find({},{KEY:1})
第一个大括号不用管,第二个括号里面写的就是你是否要显示那些数据,_id字段是默认显示的,如果不想让它显示出来就把它的值指为0,其它字段指为1才能显示
如下
db.lala.find({},{"name":1,_id:0})
| key | value |
|---|---|
| { "name" | : "毛润之" } |
| { "name" | : "蒋介石" } |
| { "name" | : "张学良" } |
就这么多了
limit()方法
要限制 MongoDB 中的记录,需要使用 limit() 方法。 limit() 方法接受一个数字型的参数,这是要显示的文档数。
基本语法
db.COLLECTION_NAME.find().limit(NUMBER)

这个很好理解,在limit()括号中填上要输出的条数即可,如果什么都不填,就会显示所有条目
MongoDB Skip() 方法
除了limit() 方法,还有一个方法skip() 也接受数字类型的参数,并使用跳过的文档数。
基本语法
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

skip()方法默认参数是0
skip() 也可以和limit()一起使用

从这个例子可以看出来,skip()不管前面有没有查到第一条,都会跳过第一条,也就是它总是会从集合的第一条开始算,这里需要注意一下。
soft()方法
语法如下
db.COLLECTION_NAME.find().sort({KEY:1})

默认是升序,这里注意一下
MongoDB 索引
索引支持的解析度的查询效率。如果没有索引,MongoDB 必须扫描每一个文档的集合,要选择那些文档相匹配的查询语句。这种扫描的效率非常低,会要求 mongod 做大数据量的处理。
索引是一种特殊的数据结构,存储设置在一个易于遍历形式的数据的一小部分。索引存储一个特定的字段或一组字段的值,在索引中指定的值的字段排列的。
ensureIndex() 方法
要创建一个索引,需要使用MongoDB 的ensureIndex()方法。
基本语法
db.COLLECTION_NAME.ensureIndex({KEY:1})
也可以通过多个字段创建索引

ensureIndex() 方法也可以接受的选项列表(可选),其下面给出的列表:
| 参数 | 类型 | 描述 |
|---|---|---|
| background | Boolean | 在后台建立索引,以便建立索引并不能阻止其他数据库活动。指定true建立在后台。默认值是 false. |
| unique | Boolean | 创建唯一索引,以便收集不会接受插入索引键或键匹配现有的值存储在索引文档。指定创建唯一索引。默认值是 false. |
| name | string | 索引的名称。如果未指定,MongoDB中都生成一个索引名索引字段的名称和排序顺序串联. |
| dropDups | Boolean | 创建一个唯一索引的字段,可能有重复。 MongoDB的索引只有第一次出现的一个键,从集合中删除的所有文件包含该键的后续出现的。指定创建唯一索引。默认值是 false. |
| sparse | Boolean | 如果为true,指数只引用文档指定的字段。这些索引使用更少的空间,但在某些情况下,特别是各种不同的表现。默认值是 false. |
| expireAfterSeconds | integer | 指定一个值,以秒为TTL控制多久MongoDB的文档保留在此集合. |
| v | index version | 索引版本号。默认的索引版本取决于mongodb 运行的版本在创建索引时. |
| weights | document | 权重是从1到99999范围内的数,表示该字段的意义,相对于其他的索引字段分数. |
| default_language | string | 对于文本索引时,决定停止词和词干分析器和标记生成规则列表的语言。默认值是 english. |
| language_override | string | 对于文本索引时,指定的名称在文档中包含覆盖默认的语言,语言字段中。默认值是语言。 |
mongodb聚合
聚合操作过程中的数据记录和计算结果返回。聚合操作分组值从多个文档,并可以执行各种操作,分组数据返回单个结果。在SQL COUNT(*)和group by 相当于MongoDB的聚集。
mongodb入门教程二的更多相关文章
- MongoDB入门教程二[MongoDB Shell 简介与使用]
MongoDB Shell 是MongoDB自带的JavaScript Shell,随MongoDB一同发布,它是MonoDB客户端工具,可以在Shell中使用命令与MongoDB实例交互,对数据库的 ...
- mongodb入门教程
title: mongodb入门教程 date: 2016-04-06 14:47:18 tags: --- 为什么要认识呢,因为这玩意就一傻逼 借用一下百科的介绍 MongoDB 是一个介于关系数据 ...
- Elasticsearch入门教程(二):Elasticsearch核心概念
原文:Elasticsearch入门教程(二):Elasticsearch核心概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:ht ...
- 无废话ExtJs 入门教程二十一[继承:Extend]
无废话ExtJs 入门教程二十一[继承:Extend] extjs技术交流,欢迎加群(201926085) 在开发中,我们在使用视图组件时,经常要设置宽度,高度,标题等属性.而这些属性可以通过“继承” ...
- 无废话ExtJs 入门教程二十[数据交互:AJAX]
无废话ExtJs 入门教程二十[数据交互:AJAX] extjs技术交流,欢迎加群(521711109) 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C ...
- 无废话ExtJs 入门教程二[Hello World]
无废话ExtJs 入门教程二[Hello World] extjs技术交流,欢迎加群(201926085) 我们在学校里学习任何一门语言都是从"Hello World"开始,这里我 ...
- MongoDb 入门教程
MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的高性能数据存储解决方案,经常被用于非关系型数据的存储,能存储海量的数据. 常 ...
- SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1
在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...
- PySide——Python图形化界面入门教程(二)
PySide——Python图形化界面入门教程(二) ——交互Widget和布局容器 ——Interactive Widgets and Layout Containers 翻译自:http://py ...
随机推荐
- rhel安装eclipse
smb --> IDE --> 环境gcc(开发c) g++(开发c++)c++操作linux --> sqlite数据库linux平台自带sqlite数据库 基本SQL语言划分:D ...
- pip install robotframework-sshlibrary提示: Microsoft Visual C++ 9.0 is required
win7下 pip install robotframework-sshlibrar时提示: error: Microsoft Visual C++ 9.0 is required (Unable t ...
- 初涉JavaScript模式 (2) : 基本技巧
尽量少用全局变量 大量使用全局变量会导致的后果 全局变量创建以后会在整个JavaScript应用和Web页面中共享.所有的全局变量都存在于一个全局命名空间内,很容易发生冲突 不知不觉创建了全局变量 其 ...
- 弹出层iframe链接设置
jQuery 比较方便就是创建删除了,所以创建一个弹出层就是当点击div的时候创建一个新的div利用固定位fixed(与浏览器窗口有关)和z-index覆盖body 并利用opacity设置其透明度产 ...
- win7 IIS7.0 【IIS 管理器无法验证此内置帐户是否有访问权】
异常信息: 服务器配置为将传递身份验证和内置帐户一起使用,以访问指定的物理路径.但是,IIS 管理器无法验证此内置帐户是否有访问权.请确保应用程序池标识具有该物理路径的读取访问权.如果此服务器加入到域 ...
- Spark On YARN内存分配
本文转自:http://blog.javachen.com/2015/06/09/memory-in-spark-on-yarn.html?utm_source=tuicool 此文解决了Spark ...
- 一个修改过简化版的InputQuery(简单实用,用到了Canvas)
主要是觉得在单输入的情况下, 原来InputQuery输入框左边的文本太难看了...... function _InputQuery(const ACaption: string; const APr ...
- COJ 0015 20602铁轨
传送门:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=15 20602铁轨 难度级别:B: 运行时间限制:1000ms: 运行空间限 ...
- mysql 安装截图
这里有3个选项, 1.Developer Machine(开发机器),个人用桌面工作站,占用最少的系统资源 2.Server Machine(服务器),MySQL服务器可以同其它应用程序一起运行,例如 ...
- Java---文件的切割与合并,已经实现图形界面(工具)
实现对任意文件的切割,实现对切割后的文件的合并. 上次只写了特定目录下的文件切割与合并,有点遗憾, 这次,我写了一个图形界面来实现对文件的切割与合并. 文件切割: 用户可以自己选择需要切割的文件, 软 ...