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