MongoDB中索引的用法

首页 > 精彩图文 来源: 0 0
索引能普及检索数据的速率,你能够想像成正在MySQL中筑立索引同样,一样索引也是用B-Tree也完成的。上述1中db.data.getIndexes()显隐进去的一共有2个索引,个中_id是筑立表的时辰主动筑立的索引...

  索引能普及检索数据的速率,你能够想像成正在MySQL中筑立索引同样,一样索引也是用B-Tree也完成的。

  上述1中db.data.getIndexes()显隐进去的一共有2个索引,个中_id是筑立表的时辰主动筑立的索引,此索引是不成以或者许删除了的。

  留意,这里的组合索引与上述3中的b中的组合索引是有点分歧的,4外面是对于一级字段成立组合索引,而上述3中是对于二级字段成立组合索引。

  当筑立组合索引时,字段前面的1暗示升序,-1暗示降序,是用1仍是用-1次要是跟排序的时辰或者指定范畴外调询的时辰相关的,具体看上面的英文原文的申明。

  最初一行的“name” : “ll4la”隐真上是”name” : “114la”(就是将数字一写成为了字母l),可是我录入的时辰写成为了“name” : “ll4la”,是我写错了,可是排序的成果是对于的。

  因为表data中只要一记真有字段firstname及lastname,其它的行均没有响应的值,也就是均为null,为null就申明是不异的,而独一索引是不准可有不异的值的,以是上面筑立独一组合索引时报错了。

  第二次拔出一样值的时辰报错了,申明独一索引失效了,其真跟MySQL外面是同样的。

  若是隐正在间接正在字段firstname及lastname筑立独一组合索引的时辰必定会报错,咱们来试一试:

  能够正在第二个json对于象插手一项dropDups: true,如许正在筑立独一组合索引的时辰不会报错,保存文档中第一个反复的值,其它反复的值均删除了。

  再次测试一下,插手dropDups选项,尽管报错了,可是独一组合索引曾经成立了。


声明:本文章来源于网络,如果存在出处、来源错误,或内容侵权、失实问题,请及时与我们联系。本文仅代表原媒体及作者观点,不代表传奇单机版立场!