如何创建和管理索引 索引名称 索引的默认名称是索引键和索引中每个键的方向(即1或1)的连接,使用下划线作为分隔符。例如,在 { item : 1, quantity: 1 }上创建的索引名称为item1quantity1。 您可以创建具有自定义名称的索引,比如比默认名称更易于阅读的索引。例如,考虑一个经常查询products集合以填充现有库存数据的应用程序。下面的createIndex() 方法在名为查询的商品和数量上创建一个索引: db.products.createIndex( { item: 1, quantity: 1 } , { name: "query for inventory" }) 您可以使用 db.collection.getIndexes()方法查看索引名称。一旦创建索引,您将无法重命名。相反,您必须删除并使用新名称重新创建索引。 文档数据库服务提供了许多不同的索引类型来支持特定类型的数据和查询。 创建索引 在文档数据库服务中,可以使用 createIndex() 方法来创建索引。下面是创建索引的一般步骤: 1. 连接到文档数据库服务的数据库。 2. 选择要创建索引的集合。 3. 使用 createIndex() 方法创建索引。createIndex() 方法接受两个参数: 1. 索引键(Index Keys):一个包含一个或多个字段的文档,用于指定要在哪些字段上创建索引。可以使用对象字面量或字符串表示法指定索引键。 2. 选项(Options):一个包含一个或多个选项的文档,用于指定索引的属性和行为。可以省略选项对象,使用默认值。 以下是一些常用的可选参数: 1. background:指定创建索引时是否在后台运行。如果设置为 true,则创建索引的过程将在后台运行,不会阻塞其他操作。默认值为 false。 2. unique:指定索引是否唯一。如果设置为 true,则索引键值必须唯一。默认值为 false。 3. sparse:指定索引是否稀疏。如果设置为 true,则只有包含索引键的文档才会被索引。默认值为 false。 4. name:指定索引的名称。如果未指定名称,则文档数据库服务将自动生成一个唯一的索引名称。 5. expireAfterSeconds:对于 TTL 索引而言,指定文档应在多长时间后过期(以秒为单位)。 6. partialFilterExpression:指定一个筛选器表达式,该表达式将被应用于索引的文档子集。只有满足表达式的文档才会被包含在索引中。 7. collation:指定索引应使用的排序规则。可以使用排序规则来控制大小写、重音符号和特定字符的排序方式。 8. storageEngine:指定索引应使用的存储引擎。可以使用存储引擎来控制索引的存储方式和性能 例如,以下是在 users 集合中为 username 字段创建一个升序索引的示例: db.users.createIndex({ username: 1 }) 如果要在 users 集合中为 username 和 email 字段创建一个复合索引,可以使用以下代码: db.users.createIndex({ username: 1, email: 1 }) 需要留意的是,创建索引可能需要一些时间,具体时间取决于集合的大小和索引的复杂度。在创建索引时,可以使用 explain() 方法来查看查询计划和性能统计信息,以便评估索引的效果和性能。