MongoDB-复合索引
复合索引
和 MySQL 一样, MongoDB 也支持复合索引, 也就是将多个字段的值作为索引。
?> 插入测试数据:
db.person.insert([
{name:'cs', age:19},
{name:'as', age:18},
{name:'bs', age:17},
{name:'bs', age:20},
])
- 如果在创建索引的时候只指定了一个字段,那么就是创建的索引为单值索引
db.person.createIndex({name: 1})
- 如果在创建索引的时候指定了多个字段,那么这个索引就是复合索引
db.person.createIndex({name:1, age:-1})
如上我们已经创建好了复合索引之后,紧接着我们可以进行查询测试测试:
- 使用了索引
db.person.explain().find({name:'bs', age:17})
db.person.explain().find({name:'bs'})
- 没有使用索引
db.person.explain().find({age:17})
如上我们创建的复合索引最终在数据结构方面的体现如下:
(as, 18) -> {name:'as', age:18}
(bs, 20) -> {name:'bs', age:20}
(bs, 17) -> {name:'bs', age:17}
(cs, 19) -> {name:'cs', age:19}
!> 复合键索引只支持 前缀
子查询, 也就是 A,B,C 复合索引 A,B,C 会使用索引, A,B会使用索引, A会使用索引,但是 B 不会使用索引, C 也不会使用索引, B,C 也不会使用索引。
分类:
MongoDB4.X+新特性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具