当我们的查询条件不只有一个时,就需要建立复合索引,比如插入一条{x:1,y:2,z:3}记录,按照我们之前建立的x为1的索引,可是使用x查询,现在想按照x与y的值查询,就需要创建如下的索引
 
 
创建复合索引
> db.test2.ensureIndex({x:1,y:1})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : ,
"numIndexesAfter" : ,
"ok" :
}

查询索引

> db.test2.getIndexes()
[
{
"v" : ,
"key" : {
"_id" :
},
"name" : "_id_",
"ns" : "config.test2"
},
{
"v" : ,
"key" : {
"x" :
},
"name" : "x_1",
"ns" : "config.test2"
},
{
"v" : ,
"key" : {
"x" : ,
"y" :
},
"name" : "x_1_y_1",
"ns" : "config.test2"
}
]
看到,新建成功,有三个索引了
再以{x:1,y:1}为条件查询
> db.test2.find({x:,y:})
{ "_id" : ObjectId("5b6235d23fb2bed9140233fd"), "x" : , "y" : , "z" : }

mongodb索引 复合索引的更多相关文章

  1. 深入理解MongoDB的复合索引

    更新时间:2018年03月26日 10:17:37   作者:Fundebug    我要评论 对于MongoDB的多键查询,创建复合索引可以有效提高性能.这篇文章主要给大家介绍了关于MongoDB复 ...

  2. 关于mongodb的复合索引新功能

    最新在做一个项目,由于查询字段较多,且查询较频繁,所以我做了一个复合索引,将所有需要查询的字段都做到索引里,做了一个名为s_1_m_1_c_1_v_1_year_1_month_1_week_1_da ...

  3. 关于mysql建立索引 复合索引 索引类型

    这两天有个非常强烈的感觉就是自己在一些特别的情况下还是hold不住,脑子easy放空或者说一下子不知道怎么去分析问题了,比方,问"hash和btree索引的差别",这非常难吗.仅仅 ...

  4. MySQL之索引复合索引有效性

    首先这里建立一张数据表,并建立符合索引( index_A,index_B,index_C) CREATE TABLE `test_index_sequence` ( `Id` int(11) NOT ...

  5. MySQL 最左前缀(Leftmost Prefix) & 组合索引(复合索引,多列索引)

    资料来源于网络,仅供参考学习. CREATE TABLE test(a INT,b INT,c INT,KEY idx(a,b,c)); 优: SELECT * FROM test WHERE a=1 ...

  6. 「生产事故」MongoDB复合索引引发的灾难

    前情提要 11月末我司商品服务的MongoDB主库曾出现过严重抖动.频繁锁库等情况. 由于诸多业务存在插入MongoDB.然后立即查询等逻辑,因此项目并未开启读写分离. 最终定位问题是由于:服务器自身 ...

  7. 【Mongodb】视图 && 索引

    准备工作 准备2个集合的数据,后面视图和索引都会用到1个订单集合,一个收款信息集合 var orders = new Array(); var shipping = new Array(); var ...

  8. MongoDB的查询索引

    ​ 目录 为什么要建立索引? 索引的分类有哪些? _id索引 单键索引 多键索引 复合索引 过期索引 hello,今天是万圣节

  9. MySQL复合索引探究

    复合索引(又称为联合索引),是在多个列上创建的索引.创建复合索引最重要的是列顺序的选择,这关系到索引能否使用上,或者影响多少个谓词条件能使用上索引.复合索引的使用遵循最左匹配原则,只有索引左边的列匹配 ...

随机推荐

  1. laravel进程管理supervisor的简单说明

    原文地址:https://www.cnblogs.com/zhoujinyi/p/6073705.html 背景: 项目中遇到有些脚本需要通过后台进程运行,保证不被异常中断,之前都是通过nohup.& ...

  2. halcon学习_字符识别1

    实例图片 大体步骤:1.读取图片                   2.图像预处理(阈值分割,提取标签部分,缩小处理区域)                  3.将标签区域的最小外接矩形,从原图中剪 ...

  3. CSS History

    Preface 如果只是要写程序,那的确是不需要这么麻烦,上来直接看Syntax,动手写上至少300行代码,做上3个应用程序,这门语言你也就差不多会用了,接下来不过就是模式,特殊的地方以及记住一些函数 ...

  4. 【数据库开发】在Windows上利用C++开发MySQL的初步

    [数据库开发]在Windows上利用C++开发MySQL的初步 标签(空格分隔): [编程开发] Windows上在上面配置环境的基础上开展一个小demo链接数据库,没想到中间也出现了这么多的问题,简 ...

  5. 【计算机视觉】Objectness算法(一)---总体理解,整理及总结

    1.源码下载及转换为VS2012 WIN32版本. http://www.cnblogs.com/larch18/p/4560690.html 2.原文: http://wenku.baidu.com ...

  6. 最新 世纪龙java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.世纪龙等10家互联网公司的校招Offer,因为某些自身原因最终选择了世纪龙.6.7月主要是做系统复习.项目复盘.LeetCo ...

  7. Redis List集合 使用

    列表类型(list)用于存储一个有序的字符串列表,常用的操作是向队列两端添加元素或者获得列表的某一片段.列表内部使用的是双向链表(double linked list)实现的,所以向列表两端添加元素的 ...

  8. Spring 使用下列表

    模型层需要提供数据选项,设置错误信息 关键代码 @NotEmpty(message = "请选择兴趣爱好") private String[] hobbies; 控制器层需要在显示 ...

  9. Mongodb: com.mongodb.MongoSocketReadException: Prematurely reached end of stream

    saveLocationInfo errorcom.mongodb.MongoSocketReadException: Prematurely reached end of stream at com ...

  10. WCF-简单 配置文件

    一.服务端配置文件 主要包括 1.services 配置服务节点 <!--name 指的是契约实现类--> <service name="WcfLib.User2" ...