松原网站推广,wordpress主题更新了,wordpress如何下载,鞍山做网站哪家好目录
简介
索引类型
单索引
复合索引
文本索引 简介
在 Mongoose 中#xff0c;索引#xff08;Index#xff09;是一种用于提高查询性能的数据结构#xff0c;它可以加速对数据库中文档的检索操作
索引类型
单索引、复合索引、文本索引、多键索引、哈希索引、地理…目录
简介
索引类型
单索引
复合索引
文本索引 简介
在 Mongoose 中索引Index是一种用于提高查询性能的数据结构它可以加速对数据库中文档的检索操作
索引类型
单索引、复合索引、文本索引、多键索引、哈希索引、地理位置空间索引、通配符索引
单索引
在了解索引之前先看一下mongoDb库库中集合tours有400条数据有slug、ratingAverage、price、summary等字段接下来就是对以上四个字段做索引 我们查询slug为the-forest-hiker的文档在 MongoDB 中explain方法用于获取有关查询执行计划的详细信息为Query的原型方法调用const queryInfo await query.explain()查看执行结果 其中totalDocsExamined为400表示扫描了400个文档nReturend为1表示匹配并返回文档的数量为1。
查询一条数据就需要把整个集合全部扫描效率过于低当文档个数少的情况下可以忽略查询速度如果文档个数数以万计那么就要优化查询速度所以需要索引。
为slug添加索引,schema.index({ slug: 1 }) 1表示升序-1表示降序再查询
tourSchema.index({ slug: 1 });
也可在定义schema的时候设置文档字段的schemaType的index为true 此时totalDocsExamined为1表示只扫描了1个文档极大的提高了查询速度。
当执行query后slug_1的Usage为1表示索引命中了一次。 复合索引
tourSchema.index({ price: 1, ratingsAverage: -1 });
同时为两个字段添加索引表示先对price进行升序然后在同price的情况下进行ratingsAverage降序。
查询price大于等于1000并且ratingsAverage大于等于4的文档查询详细信息totalDocsExamined为5nReturend为5如果不设置复合索引对两个字段进行复合查询的时候会对全文档进行查询匹配。 文本索引
tourSchema.index({ summary: text }); const doc await tourModel.find({ $text: { $search: National }}); 查询信息 如果不创建索引则扫描全文档。
多键索引是针对数组