索引能够极大的提高查询的效率。在数据库中简历索引必不可少。

在MongoDB中可以很轻松的创建索引。

默认索引_id_

开启MongoDB服务器,创建数据库cnblogs,创建集合Users 。(关于这部分知识请看上一篇MongoDB开发学习(1)开天辟地,经典入门

在shell窗口键入如下命令查询集合中所有索引:

> db.Users.getIndexes()

从输出的结果我们可以看到,系统已经默认为Users集合创建了一个索引_id_。

MongoDB在每个集合里有个默认的“_id”的“字段”,相当于“主键”。集合创建后系统会自动创建一个索引在“_id”键上,它是默认索引,索引名叫“_id_”,不允许删除。

创建索引

在MongoDB中使用ensureIndex()命令创建索引

1)  创建单例索引

> db.Users.ensureIndex({name:1})

2) 创建联合索引

联合索引就是将多个字段作为一个索引

 > db.Users.ensureIndex({name:1,sex:-1})

 //其中,关键字后面的数字表示索引的排序方向,1表示升序,-1表示倒序。
//索引的名称默认格式为:“关键字_数字”,比如上面创建的两个索引的名称即为:”name_1”, “name_1_sex_-1”

3) 创建文档索引

所谓文档索引就是集合的某个“字段”是文档,然后给该字段建立索引

可以给整个“字段”建立索引,如:

> db.Users.ensureIndex({‘Article’:1})

也可以给该“字段”文档的部分某个属性简历索引,如:

> db.Users.ensureIndex({‘Article.Title’:1})

 

删除索引

在MongoDB中使用dropIndex()命令删除索引,如:

> db.Users.dropIndex(‘Name_1’)

[转载]MongoDB开发学习(2)索引的基本操作的更多相关文章

  1. [转载]MongoDB开发学习 经典入门

    如果你从来没有接触MongoDB或对MongoDB有一点了解,如果你是C#开发人员,那么你不妨花几分钟看看本文.本文将一步一步带您轻松入门. 阅读目录 一:简介 二:特点 三:下载安装和开启服务器 四 ...

  2. [转载]MongoDB开发学习(1)开天辟地,经典入门

    原文地址:http://www.cnblogs.com/xumingxiang/archive/2012/04/08/2437468.html 如果你从来没有接触MongoDB或对MongoDB有一点 ...

  3. MongoDB开发学习

    如果你从来没有接触MongoDB或对MongoDB有一点了解,如果你是C#开发人员,那么你不妨花几分钟看看本文.本文将一步一步带您轻松入门. 阅读目录 一:简介 二:特点 三:下载安装和开启服务器 四 ...

  4. MongoDB开发学习(1)开天辟地,经典入门

    原文地址:http://www.cnblogs.com/xumingxiang/archive/2012/04/08/2437468.html 如果你从来没有接触MongoDB或对MongoDB有一点 ...

  5. 【转载】8天学通MongoDB——第四天 索引操作

    这些天项目改版,时间比较紧,博客也就没跟得上,还望大家见谅. 好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们 又 ...

  6. MongoDB的学习--索引类型和属性(转)

    原文链接:MongoDB的学习--索引类型和属性 索引类型 MongDB的索引分为以下几种类型:单键索引.复合索引.多键索引.地理空间索引.全文本索引和哈希索引 单键索引(Single Field I ...

  7. 转载:使用Xilinx IP核进行PCIE开发学习笔记(一)简介篇

    https://zhuanlan.zhihu.com/p/32786076 最近接触到一个项目,需要使用PCIE协议,项目要求完成一个pcie板卡,最终可以通过电脑进行通信,完成电脑发送的指令.这当中 ...

  8. MongoDB学习笔记~索引提高查询效率

    回到目录 索引这个东西大家不会陌生,只要接触到稍微大一点的数据,都会用到这东西,它可以提升查询的速度,相当代价就是占用了更多的存储空间,这也是正常的,符合“能量守恒定理”,哈哈!今天说的是MongoD ...

  9. MongoDB学习笔记(索引)

    一.索引基础:    MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧.下面是创建索引的命令:    > db.test.ensureIndex({" ...

随机推荐

  1. 关于JFace中的输入值(InputDialog)对话框类

    格式: InputDialog(Shell parentShell, String dialogTitle, String dialogMessage, String initialValue, In ...

  2. Java读取一个文件并打印到控制台上

    package test9; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundExcept ...

  3. [原]Eclipse 安装SVN、Maven插件(补充)

    参考雨之殇的文章:Eclipse 安装SVN.Maven插件 1.SVN可以按文章介绍的正常安装 2.Maven的Eclipse插件地址有变化 文章中的安装链接已经失效:m2e - http://m2 ...

  4. 【转载】Git的安装与使用

    Git的安装与使用  转载来源:http://www.cnblogs.com/Bonker/p/3441781.html 1,下载git https://code.google.com/p/msysg ...

  5. C#学习笔记14:面向对象继承的特点和里氏转换

    面向对象: 继承:减少代码. 单根性  传递性 子类没有从父类那里继承了构造函数,只是会默认的调用父类那个无参数的构造函数 Class person { Public String Name { Ge ...

  6. (三)JAVA使用POI操作excel

    1,单元格对齐方式 Demo8.java package com.wishwzp.poi; import java.io.FileOutputStream; import java.util.Date ...

  7. js 金额格式化

    //格式化金额 function fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + &quo ...

  8. C#基于AE组件二次开发常见问题

    由于本人从事的是在.net平台下进行GIS的二次开发,所以第一篇博文就说一下:我最近在项目中出现的常见的问题,如果能够给大家增加一点点便利,也是我的荣幸,如果大家对于这次博文有什么意见和建议,欢迎大家 ...

  9. 杂技之sharpdevelop调试aps.net

    背景: 本人笔记本电脑不给力,vs打开实在太慢,因此考虑使用sharpdevelop,但sharpdevelop有点麻烦事,就是不支持asp.net的调试,为解决此问题,本人在此杂技一把了 方案一: ...

  10. 理解css 中的position五个属性

    在实际开发页面布局时,运用position,对定位的块级元素的嵌套的效果总是不太理解,这里做了几个测试 一般的在w3c中我们可以很容易的获取定义: static : 默认值.没有定位,元素出现在正常的 ...