UK Day46 - MongoDB - 索引
2021/11/13 2:39:48
本文主要是介绍UK Day46 - MongoDB - 索引,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
-
索引作用:提高查询语句的执行效率。MongoDB索引默认创建的是B树索引。
-
创建索引
-
为单个字段创建索引,语法:
db.collection_name.createIndex({"field":1})
。-
Eg:为age字段创建索引:
db.Animals.createIndex({"age":1})
,创建成功如图所示:
-
-
为多个字段创建索引:
db.collection_name.createIndex({"field1":1, "field2":-1, ……})
-
-
删除索引
-
删除指定索引:
db.collection_name.dropIndex(delete_index)
-
可以同时删除集合中的多个索引:
db.collection_name.dropIndexes()
-
-
获取集合中所有索引:
db.collection_name.getIndexes()
-
索引类型
-
单字段索引
-
在文档的单个字段上创建用户定义的升序/降序索引。
-
在MongoDB中,每个集合都会默认创建一个唯一索引列
_id
,_id
列是最基本的单列索引。 -
创建单列索引语法:
db.collection_name.createIndex( { field: -1 } )
。(-1表示索引值按降序排列,1表示升序排列) -
创建单列唯一索引语法:
db.collection_name.createIndex( {keyname : -1},{“unique” : true})
-
-
复合索引
-
MongoDB支持在多列上创建索引。但是,复合索引不能包含哈希索引列。
创建复合索引可以使用以下语法:
db.collection.createIndex( { field1 :type1, field2 : type2 , ......} )
-
-
多键索引
-
如果索引字段的值为数组,MongoDB会创建数组中的每个元素的索引键(即多键索引),不需要明确指定多键型。但是,哈希索引不能是多键。
-
创建多键索引语法:
db.collection.createIndex({ field: 1/-1 } )
-
-
全文索引
-
MongoDB提供全文索引支持文本搜索查询字符串内容。全文索引可以是其值为字符串或字符串元素的数组的字段。目前,MongoDB集合最多只支持一个全文索引。
-
创建全文索引语法:
db.collection.createIndex( { fields : “text” } )
-
还可以在多列上创建全文索引:
db.collection.createIndex( { field1 : “text”,fields : “text”,......} )
-
-
地理空间索引
-
适用场景,比如:找到离当前位置最近的N个场所。
-
目前不需要了解。
-
-
哈希索引
-
语法:
db.collection_name.createIndex({ _id : “hashed”} )
-
哈希索引支持分片使用哈希片键。基于分片使用哈希索引的字段作为片键在分片集群分区数据。在分片集合中,使用哈希索引作为片键结果得到更加随机分布的数据。
-
MongoDB支持任何单一的列的哈希索引。但不支持多键(即数组)索引。
-
不能在哈希索引列或指定哈希索引唯一约束字段上创建复合索引;但是,在同一个字段上,可以创建哈希索引和非哈希索引。MongoDB会使用标量索引范围查询。
-
-
这篇关于UK Day46 - MongoDB - 索引的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用
- 2024-11-01随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用
- 2024-10-24AI ?先驱齐聚 BAAI 2024,发布大规模语言、多模态、具身、生物计算以及 FlagOpen 2.0 等 AI 模型创新成果。
- 2024-10-20goland工具下,如修改一个项目的标准库SDK的版本-icode9专业技术文章分享
- 2024-10-17Go学习:初学者的简单教程
- 2024-10-17Go学习:新手入门完全指南