Manage Index

此页显示如何管理现有索引。有关创建索引的说明, 请参阅特定的索引类型页。

查看现有索引

以下各节提供了用于查看集合或整个数据库上的现有索引的方法。

列出集合中的所有索引

若要返回集合上所有索引的列表, 请使用 db.collection.getIndexes() 方法或驱动程序的类似方法。

例如, 若要查看人员集合上的所有索引, 请运行以下命令:

db.getCollection('explain').getIndexes();
  • 查询结果
[
    {
        "v" : 2,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "test.explain"
    },
    {
        "v" : 2,
        "key" : {
            "a" : 1.0,
            "b" : 1.0
        },
        "name" : "a_1_b_1",
        "ns" : "test.explain"
    },
    {
        "v" : 2,
        "key" : {
            "c" : 1.0
        },
        "name" : "c_1",
        "ns" : "test.explain"
    }
]

列举数据库的所有索引信息

  • 列举数据库名称

db.getCollectionNames()

结果:

[
    "explain",
    "person"
]
  • 列举数据库索引

遍历每一个 collection 即可。

删除索引

指定删除索引的名称

若要删除索引, 请使用 db.collection.dropIndex() 方法。

例如, 下面的操作删除帐户集合中的税 id 字段上的升序索引:

db.accounts.dropIndex( { "tax-id": 1 } )

移除所有的索引

db.accounts.dropIndexes()

修改索引

若要修改现有索引, 需要删除并重新创建索引。

此规则的例外是 TTL 索引, 可以通过 collMod 命令与索引集合标志一起修改。

参考资料

Manage Index