MongoDB 索引

索引

索引支持查询的有效解析。没有索引,MongoDB必须扫描集合中的每个文档以选择与查询语句匹配的那些文档。这种扫描效率极低,需要MongoDB处理大量数据。索引是特殊的数据结构,以易于遍历的形式存储数据集的一小部分。索引存储特定字段或一组字段的值,该值由索引中指定的字段值排序。

createIndex()方法

要创建索引,您需要使用MongoDB的createIndex()方法。
createIndex()方法的基本语法如下

>db.COLLECTION_NAME.createIndex({KEY:1})

此处的key是要在其上创建索引的字段的名称,而1代表升序。要以降序创建索引,您需要使用-1。
示例

db.empDetails.createIndex({"uid":1});
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}

在createIndex()方法中,您可以传递多个字段,以在多个字段上创建索引。

db.empDetails.createIndex({"uid":1,"title":-1});

此方法还接受选项列表(可选)。以下是列表-
参考:https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/index.html

dropIndex()方法

您可以使用MongoDB的dropIndex()方法删除特定索引。
DropIndex()方法的基本语法如下

>db.COLLECTION_NAME.dropIndex({KEY:1})

此处的key是您要在其上创建索引的文件的名称,而1代表升序。要以降序创建索引,您需要使用-1。
示例

>db.empDetails.dropIndex({"uid":1});
{ "nIndexesWas" : 2, "ok" : 1 }

参考:https://docs.mongodb.com/manual/reference/method/db.collection.dropIndex/index.html

dropIndexes()方法

此方法删除集合上的多个(指定)索引。
dropIndexes()方法的基本语法如下

>db.COLLECTION_NAME.dropIndexes()

假设我们在命名的mycol集合中创建了2个索引,如下所示。
示例

db.empDetails.createIndex({"uid":1,"title":-1});

以下示例删除了上面创建的mycol索引-

db.empDetails.dropIndexes({"uid":1,"title":-1});

参考:https://docs.mongodb.com/manual/reference/method/db.collection.dropIndexes/index.html

getIndexes()方法

此方法返回集合中所有索引的描述。
getIndexes()方法的基本语法如下

db.COLLECTION_NAME.getIndexes()

假设我们在命名的mycol集合中创建了2个索引,如下所示。
示例

db.empDetails.createIndex({"uid":1,"title":-1});

以下示例检索集合mycol中的所有索引-

db.empDetails.getIndexes();
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"uid" : 1,
"title" : -1
},
"name" : "uid_1_title_-1"
}
]

参考:https://docs.mongodb.com/manual/reference/method/db.collection.getIndexes/index.html
以上是MongoDB 索引的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>