继续mongoDB的学习

--索引具体解释

--索引管理

--空间索引

1.创建简单索引

(1)先准备20万条数据

for(var i = 0;i< 200000;i++){

db.books.insert("number":i,"name":i+"book")

}

(2)检查一下查询性能

var start = new Date()

db.books.find({"number":123456})

var end = new Date();

end - start

(3)为number创建索引

db.books.ensureIndex({"number":}) 此处1代表正序,-1代表倒序

2.须要注意的地方

-索引的创建在提升查询性能的同一时候会影响插入的性能

-对于常常查询少插入的文档能够考虑使用索引

-每一个键都建立索引不一定能够提高性能

-在做排序工作时,假设是大数据量也能够考虑索引

3.创建索引时能够同一时候指定索引的名字

db.books.ensureIndex({"name":1},{name:"bookname"})

4.唯一索引

怎样解决集合books不能插入反复的文档

建立唯一索引:db.books.ensureIndex({"name":1},{unique:true})

5.剔除反复值

假设建立唯一索引之前,已经有反复文档,怎么办?

db.books.ensureIndex({"name":1},{unique:true,dropDups:true})

6.hint

怎样强制查询使用指定的索引

db.books.find({"name":"obook"}).hint({"name":1})

指定索引必须是已经创建好了的索引

7.explain

怎样具体的查看本次查询使用哪个索引和查询数据的状态信息

db.books.find({"name":"0book"}).explain()

8.索引的创建过程在后台运行

db.books.ensureIndex({"name":"0book"},{bookground:true})

9.删除索引

db.runCommand({dropIndexes:"books",index:"name_1"})精确删除

db.runCommand({dropIndexes:"books",index:"*"})全部都删除

MongoDB学习笔记&lt;六&gt;的更多相关文章

  1. MongoDB学习笔记(六)--复制集+sharding分片 && 总结

    复制集+sharding分片                                                               背景 主机 IP 服务及端口 Server A ...

  2. MongoDB 学习笔记(六):备份与用户管理

    一.启动项 1.在启动数据库服务时可以在命令行输入mongod命令,然后直接带一些参数,比如“mongod --dbpath D:\Installations\MongoDB-2.4.6\MongoD ...

  3. MongoDB学习笔记(六、MongoDB复制集与分片)

    目录: MongoDB部署模型 MongoDB可复制集 MongoDB读写分离 分片架构部署 最佳实践 MongoDB部署模型: 单机 -> 可复制集 -> 分片集群 MongoDB可复制 ...

  4. MongoDB学习笔记(六)

    初识 MongoDB 中的索引 索引就像图书的目录一样,可以让我们快速定位到需要的内容,关系型数据库中有索引,NoSQL 中当然也有,本文我们就先来简单介绍下 MongoDB 中的索引. 索引创建 默 ...

  5. MongoDB学习笔记(五)--复制集 && sharding分片

    主从复制                                                                                       主从节点开启 主节 ...

  6. MongoDB学习笔记(转)

    MongoDB学习笔记(一) MongoDB介绍及安装MongoDB学习笔记(二) 通过samus驱动实现基本数据操作MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB ...

  7. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  8. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  9. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

随机推荐

  1. python c++ Visual Studio相关 Unable to find vcvarsall.bat问题

    使用Cython编译包的时候报错: Unable to find vcvarsall.bat 说明:https://jingyan.baidu.com/article/adc815138162e8f7 ...

  2. js动态设置根元素的rem方案

    方案需求: rem 单位在做移动端的h5开发的时候是最经常使用的单位.为解决自适应的问题,我们需要动态的给文档的根节点添加font-size 值. 使用mediaquery 可以解决这个问题,但是每一 ...

  3. char可不可以存汉字

    常见的面试题:char类型的变量可不可以存汉字 答案是可以的,char类型中存储的是Unicode编码,Unicode编码中是存在存在中文的,所以Char自然可以存储汉字,但是!仅限于Unicode中 ...

  4. 【spring boot】配置文件 application.properties 属性解析

    1.JPA  hibernate命名策略 完整命名策略 ,查看:http://www.cnblogs.com/sxdcgaq8080/p/7910474.html 2.hibernate的DDL执行策 ...

  5. Rebound动画框架简单介绍

    Rebound动画框架简单介绍 Android菜鸟一枚,有不对的地方希望大家指出,谢谢. 最近在接手了一个老项目,发现里面动画框架用的是facebook中的Rebound框架,由于以前没听说过,放假时 ...

  6. PHP生成月历代码

    <?php /*   Function Written by Nelson Neoh @3/2004.   For those who wants to utilize this code, p ...

  7. Android蓝牙开发教程(三)——蓝牙设备相互通讯

    在上一篇中已经介绍如何连接我们搜索到的蓝牙设备,如果你还没阅读过,建议先看看上一篇文章Android蓝牙开发教程(二)——连接蓝牙设备 在上一篇文章中,无论是自动连接还是被动连接,连接成功后,都是将获 ...

  8. Cocos2d-x 3.0 屏幕触摸及消息分发机制

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  9. 【前端阅读】——《JavaScript应用开发技术详解指南》摘记&思维导图

    读这本书,我主要关注三个部分:JavaScript内置函数,程序调试以及Ajax基础.由于多是介绍基本概念,所以,采用思维导图的方式,做了一个梳理,以下就是精简的主要内容. 注:转载请注明出处

  10. linux中判断符号[]注意事项

    1.中括号[]内的每个组件都需要有空格键来分割: 2.在中括号内的变量,最好都一双引号括号起来: 3.在中括号内的常量,最好都以单引号或双引号括号起来.