MST

星途 面试题库

面试题:MongoDB复杂索引的创建与修改

假设你有一个集合,包含字段`name`、`age`和`address`。现在需要创建一个复合索引,要求按照`name`升序、`age`降序排列,应该如何操作?如果之后需要修改这个复合索引,在保持`name`升序、`age`降序的基础上,添加`address`字段的升序,又该怎么做?请分别给出命令。
39.3万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试
  1. 创建复合索引(按照name升序、age降序排列): 在 MongoDB 中,可以使用以下命令:
db.collection_name.createIndex({name: 1, age: -1});

在上述命令中,collection_name是集合的名称,{name: 1, age: -1}表示创建一个复合索引,name字段升序(1 表示升序),age字段降序(-1 表示降序)。

  1. 修改复合索引,添加address字段升序(在保持name升序、age降序的基础上): 在 MongoDB 中,不能直接修改现有索引,需要先删除旧索引,再创建新索引。
  • 删除旧索引:
db.collection_name.dropIndex({name: 1, age: -1});
  • 创建新索引:
db.collection_name.createIndex({name: 1, age: -1, address: 1});

这里新的复合索引在原来name升序、age降序的基础上,添加了address字段的升序。