搜索
写经验 领红包
 > 运动

MogoDB之索引实验报告(mogodb索引用什么数据结构)

导语:MongoDB之索引

1.概述

索引使用的是B-Tree数据结构;

2.索引的类型

(1)单字段索引

在文档的单个字段上创建用户定义的升序/降序索引;索引键的排序顺序(即升序或降序)并不重要,可以在任何方向上遍历索引;

(2)复合索引

多个字段定义的索引;示例:索引由{ userid: 1, score: -1 } 组成,则索引首先按userid正序排序,然后在每个userid的值内,再按score倒序排序;

(3)其它索引

地理空间索引:返回结果时使用平面几何的二维索引和返回结果时使用球面几何的二维球面索引;文本索引:支持在集合中搜索字符串内容哈希索引:为了支持基于散列的分片,MongoDB提供了散列索引类型,它对字段值的散列进行索引,不支持范围的查询;3.索引的管理操作

(1)查看

db.collection.getIndexes();

示例:

结果返回的是默认_id索引;Id值是不能重复的,在分片集群中,通常使用_id作为片键;

(2)创建

db.collection.createIndex(keys, options);

参数:

可选值:

示例:

单字段索引:

参数表示按照升序创建索引;

复合索引

(3)删除

指定索引的移除:

db.collection.dropIndex(index)

所有索引的移除:

db.collection.dropIndexes()

只能删除非_id字段的索引

4.索引的使用

(1)执行计划

db.collection.find(query,options).explain(options)

&34; : &34;, 表示全集合扫描;&34; : &34; ,基于索引的扫描;

示例:

查看根据userid查询数据的情况;

(2)覆盖查询

当查询条件和查询的投影仅包含索引字段时,MongoDB直接从索引返回结果,而不扫描任何文档或将文档带入内存;

本文内容由小樊整理编辑!