MongoDB(五)—-MongoDB中的索引类型

MongoDB(五)—-MongoDB中的索引类型

在MongoDB中支持多种类型的索引,包括单字段索引、复合索引、多key索引、文本索引等,每种类型的索引有不同的使用场合。

1.单字段索引

指的是在索引中只包含了一个键,MongoDB默认创建的_Id索引也是这种类型
创建方式:createIndexes({索引键:排序规则})

db.user.createIndex({
   name:1})

2.交叉索引

交叉索引就是为一个集合的多个字段分别建立索引,在查询的时候通过多个字段作为查询条件,这种情况称为交叉索引。
在查询文档时,在查询条件中包含一个交叉索引键或者在一次查询中使用多个交叉索引键作为查询条件都会触发交叉索引。
举例说明:

db.user.createIndex({
   organization:1},{
   background:true})
db.user.createIndex({
   age:1},{
   background:true})
db.user.find({
   $and:[{
   name:"梁牡党"},{
   age:54}]}).explain()

3.复合索引

复合索引是单字段索引的升级版本,它针对多个字段联合创建索引,先按第一个字段排序,第一个字段相同的文档按第二个字段排序,以此类推
语法格式:

db.COLLECTION_NAME.createIndex({
   索引键名:排序规则, 索引键名:排序规则,......});
db.user.createIndex({
   name:1,age:1},{
   background:true});

复合索引能满足的查询场景比单字段索引更丰富,不光能满足多个字段组合起来的查询,也能满足所有能匹配符合索引前缀的查询。
创建复合索引后,按照name或按照name+age两种查询方式都可以触发这个索引。

4.多key索引

当索引的字段为数组时,创建出的索引称为多key索引,多key索引会为数组的每个元素建立一条索引。
语法格式:

db.COLLECTION_NAME.createIndex({
   数组键名:排序规则});
db.c1.createIndex({
   hobby:1},{
   background:true});
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2320.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c实现set集合

    c实现set集合集合有点编程语言会带有,有的没有。但是我想redis的集合set你一定听说过或者用过。下面咱们用链表来实现set相信有了前面的基础我们可以很容易的实现set集合需要引入我的链表的list.c和list.h头文件////set.h//set////Createdbybikangon16/9/18.//Copyright(c)2016年bikang.Allri

    2022年5月9日
    53
  • netty编解码器_netty编程实战

    netty编解码器_netty编程实战目录​1Java序列化的缺点2业界主流的编解码框架2.1Google的Protobuf介绍2.2Facebook的Thrift介绍2.3JBossMarshalling介绍 第6章编解码技术1Java序列化的缺点java序列化通过实现Serializable接口来实现 无法跨语言 序列化后的码流太大  序列化性能太低java序列化的两…

    2022年9月28日
    3
  • poi-tl根据word模板导出word、使用spring-thymeleaf模板生成html并通过docx4j把html转word,使用jxls根据excel模板导出excel(1)[通俗易懂]

    poi-tl根据word模板导出word、使用spring-thymeleaf模板生成html并通过docx4j把html转word,使用jxls根据excel模板导出excel(1)[通俗易懂]使用poi-tl根据word模板生成word官网http://deepoove.com/poi-tlhttps://zhengkai.blog.csdn.net/article/details/81702029?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.baidujs&dist_request_id=1331302.8264.16182.

    2022年10月18日
    4
  • C6000软件优化经验总结

    C6000软件优化经验总结DSP 优化心得 1推荐C6XX优化经验总结一、c6x的编译的常用选项(一)c6x的编译程序为“cl6x.ex

    2022年6月24日
    28
  • shell中 -eq,-ne,-gt,-lt,-ge,-le数字比较符

    使用说明:-eq//equals等于-ne//noequals不等于-qt//qreaterthan大于-lt//lessthan小于-ge//greaterequals大于等于-le//lessequals小于等于注:1、在shell中进行比较时,结果为0代表真,为1代表假。2、-eq,-ne等比较符只能用于数字比较,有字符也会先转换成数字然后进行比较。…

    2022年4月7日
    207
  • 更新本地DNS缓存列表[通俗易懂]

    更新本地DNS缓存列表[通俗易懂]更新本地DNS缓存列表当我们以域名形式访问过目标网站后,该网站的域名和IP地址对应关系就会自动保存到本地工作站的DNS缓存列表中,日后IE浏览器会优先访问DNS缓存列表中的信息,不过一旦此时目标站点的域名和IP地址对应关系发生变动的话,DNS缓存列表中的对应解析记录不会跟着同步变化,那么日后我们再次以域名形式访问目标站点时就容易发生DNS解析不成功的故障。这个时候,…

    2022年5月5日
    97

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号