MongoDB学习【四】MongoDB索引详解

本文详细介绍了MongoDB的索引,包括索引简介、常用索引类型如单键、复合、多键、文字、通配符、2dsphere、2d和哈希索引,以及索引的属性如TTL、唯一、部分、不区分大小写和稀疏索引。还提到了索引的构建过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MongoDB索引详解

一、索引简介

索引支持在MongoDB中高效执行查询。没有索引,MongoDB必须执行集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的那些文档。如果查询存在适当的索引,则MongoDB可以使用该索引来限制它必须检查的文档数。

索引是特殊的数据结构,它以易于遍历的形式存储集合数据集的一小部分。索引存储一个特定字段或一组字段的值,按该字段的值排序。索引条目的排序支持有效的相等匹配和基于范围的查询操作。另外,MongoDB可以通过使用索引中的顺序返回排序的结果。

下图说明了使用索引选择和排序匹配文档的查询:

从根本上讲,MongoDB中的索引类似于其他数据库系统中的索引。MongoDB在集合级别定义索引,并支持MongoDB集合中文档的任何字段或子字段的索引。

索引操作基本命令:

名称 描述
db.collection.createIndex() 在集合上建立索引。
db.collection.dropIndex() 删除集合上的指定索引。
db.collection.dropIndexes() 删除集合上的所有索引。
db.collection.getIndexes() 返回描述集合中现有索引的文档数组。
db.collection.reIndex() 重建集合上所有现有的索引。
db.collection.totalIndexSize() 报告集合上的索引使用的总大小。提供围绕输出totalIndexSize字段的包装collStats
cursor.explain() 报告有关游标的查询执行计划。
cursor.hint() 强制MongoDB对查询使用特定的索引。
cursor.max() 指定游标的排他上限。用于cursor.hint()
cursor.min()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值