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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • void loop在c语言中什么意思,C语言中的loop是什么意思,在C语言中loop是什么意思?…[通俗易懂]

    void loop在c语言中什么意思,C语言中的loop是什么意思,在C语言中loop是什么意思?…[通俗易懂]loop是一个在编程中习惯用的语句标号。且长配合goto语句使用。由于现在编程不提倡使用goto语句,c中的语句标号也好少用到。另附上goto,break,continue和return用法:===========================================程序中的语句通常总是按顺序方向,或按语句功能所定义的方向执行的。假如需要改变程序的正常流向,可以使用本小节介绍的转…

    2022年5月19日
  • 用docker部署jar包_war包和jar包部署区别

    用docker部署jar包_war包和jar包部署区别对于springboot项目运行,直接是java-jar的方式运行,如果想要放到docker中运行,有三种方式:方式一:1.上传jar到服务器的指定目录2.在该目录下创建Dockerfile文件viDockerfile3.然后将下面的内容复制到Dockerfile文件中FROMjava:8MAINTAINERbin…

    2022年10月19日
  • 一文读懂BERT(原理篇)

    一文读懂BERT(原理篇)一文读懂BERT(从原理到实践)2018年的10月11日,Google发布的论文《Pre-trainingofDeepBidirectionalTransformersforLanguageUnderstanding》,成功在11项NLP任务中取得stateoftheart的结果,赢得自然语言处理学界的一片赞誉之声。本文是对近期关于BERT论文、相关文章、代码进…

    2022年5月25日
  • “xxxxxxxxx”signer information does not match signer information of other classes in the same package

    “xxxxxxxxx”signer information does not match signer information of other classes in the same packageMaven在static方法下测试没问题,请求正常,但是服务启动后出现错误信息。在发起请求时抛出异常信息”xxxxxxxxx”signerinformationdoesnotmatchsignerinformationofotherclassesinthesamepackage操作:1、移除pom下冲突的依赖2、移除libraries项目中导入本地jar文件…

    2022年8月22日
  • Eclipse 的环境问题1

    Eclipse 的环境问题1

    2021年9月1日
  • eclipse安装教程(2021最新版)超级易懂到吐血

    eclipse安装教程(2021最新版)超级易懂到吐血第一步:下载JDK(下载地址)http://www.oracle.com/technetwork/java/javase/downloads/index.html第二步根据自己电脑的系统,选择相应的版本x64代表64位,x86代表32位。点击相应的JDK进行下载点击之后会出现一个对话框同意之后下载。(记住下载到哪,打开之后一路同意安装即可)记住你把JDK安装到哪里,文件路径不要有中文,不然会无法识别,我安装的时候把JDK装到了F盘第三步:配置环境变量这里解释一下什么是环境.

    2022年6月14日

发表回复

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

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