MongoDB中的索引类型主要包括以下几种:
- 单字段索引(Single Field Indexes):这是最基本的索引类型,它可以基于集合中的单个字段创建。
- 复合索引(Compound Indexes):复合索引是单字段索引的升级版,它可以基于集合中的多个字段创建。
- 唯一索引(Unique Indexes):唯一索引确保索引字段的值在集合内是唯一的。
- 文本索引(Text Indexes):文本索引可用于字符串,主要用于执行全文搜索。
- 哈希索引(Hashed Indexes):哈希索引在某些特定的应用场景下可以提供比普通索引更好的性能,但是它不支持范围查询。
创建索引的MongoDB Shell命令示例:
javascript
// 创建单字段索引
db.collection.createIndex({ field: 1 }) // 升序索引
db.collection.createIndex({ field: -1 }) // 降序索引
// 创建复合索引
db.collection.createIndex({ field1: 1, field2: -1 })
// 创建唯一索引
db.collection.createIndex({ field: 1 }, { unique: true })
// 创建文本索引
db.collection.createIndex({ field: "text" })
// 创建哈希索引
db.collection.createIndex({ field: "hashed" })
在MongoDB中,创建索引规则通常涉及到以下几个步骤:
- 确定需要创建索引的字段。
- 确定索引类型(单字段索引、复合索引、唯一索引等)。
- 使用createIndex方法创建索引。
以下是一些创建索引的示例代码:
javascript
// 假设有一个名为"myCollection"的集合,并且我们想要在"field1"上创建一个单字段升序索引
db.myCollection.createIndex({ field1: 1 });
// 创建一个复合索引,同时包含"field1"和"field2",其中"field1"升序,"field2"降序
db.myCollection.createIndex({ field1: 1, field2: -1 });
// 创建一个唯一索引,确保"uniqueField"上的值都是唯一的
db.myCollection.createIndex({ uniqueField: 1 }, { unique: true });
// 创建一个带有额外选项的索引,例如设置后台创建和索引过期(TTL)
db.myCollection.createIndex({ expireField: 1 }, { expireAfterSeconds: 3600, background: true });