English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MongoDB Index

Ein Index unterstützt die effiziente Analyse von Abfragen. Ohne Index muss MongoDB jeden Dokument der Sammlung scannen, um Dokumente auszuwählen, die mit dem Abfrageausdruck übereinstimmen. Dieses Scannen ist ineffizient und erfordert eine große Menge an Datenverarbeitung durch MongoDB.
Ein Index ist eine spezielle Datenstruktur, die einen kleinen Teil der Datenmenge in einer leicht durchsuchbaren Form speichert. Ein Index speichert die Werte spezifischer Felder oder Feldgruppen, sortiert nach den in der Indexangabe angegebenen Feldwerten.

Methode createIndex()

Um einen Index zu erstellen, müssen Sie die Methode createIndex() von MongoDB verwenden.

Syntax

createIndex()Die Grundsyntax der Methode ist wie folgt().

>db.COLLECTION_NAME.createIndex({KEY:1]

Hier ist KEY der Name des Felds, auf dem der Index erstellt werden soll,1stellt eine Aufwärtsordnung dar. Um einen Abwärtssortierungsindex zu erstellen, müssen Sie-1。

Example

>db.mycol.createIndex({"title":1]
{
	"createdCollectionAutomatically": false,
	"numIndexesBefore": 1,
	"numIndexesAfter": 2,
	"ok": 1
}
>

IncreateIndex()In der Methode können Sie mehrere Felder übergeben, um auf mehreren Feldern einen Index zu erstellen.

>db.mycol.createIndex({"title":1,"description":-1]
>

Die Methode createIndex() akzeptiert optionale Parameter, die folgenden Liste sind:

ParameterTypBeschreibung
backgroundBooleanDer Prozess der Erstellung eines Indexes blockiert andere Datenbankoperationen. "background" kann verwendet werden, um den Index im Hintergrund zu erstellen, d.h. durch Hinzufügen von "background".   Optionaler Parameter. "background" ist der Standardwertfalse
uniqueBooleanOb der angelegte Index eindeutig ist. Eine Angabe von true erstellt einen eindeutigen Index. Der Standardwert istfalse.
namestringDer Name des Index. Wenn nicht angegeben, generiert MongoDB einen Indexnamen basierend auf dem Namen des durch den Index verbundenen Felds und der Sortierreihenfolge.
dropDupsBoolean3.0+版本已废弃。在建立唯一索引时是否删除重复记录,指定 true 创建唯一索引。默认值为 false.
sparseBoolean对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如果设置为true的话,在索引字段中不会查询出不包含对应字段的文档.。默认值为 false.
expireAfterSecondsinteger指定一个以秒为单位的数值,完成 TTL设定,设定集合的生存时间。
vindex version索引的版本号。默认的索引版本取决于mongod创建索引时运行的版本。
weightsdocument索引权重值,数值在 1 到 99,999 之间,表示该索引相对于其他索引字段的得分权重。
default_languagestring对于文本索引,该参数决定了停用词及词干和词器的规则的列表。 默认为英语
language_overridestring对于文本索引,该参数指定了包含在文档中的字段名,语言覆盖默认的language,默认值为 language.

dropIndex()方法

您可以使用MongoDB的dropIndex()方法删除特定索引。

Syntax

DropIndex()方法的基本语法如下()。

>db.COLLECTION_NAME.dropIndex({KEY:1]

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

Example

>db.mycol.dropIndex({"title":1]
{
	"ok": 0,
	"errmsg": "can't	find	index	with	key:	{	title: 1.0	}
	"code": 27,
	"codeName": "IndexNotFound"
}

dropIndexes()方法

此方法删除集合上的多个(指定)索引。

Syntax

DropIndexes()方法的基本语法如下()-

>db.COLLECTION_NAME.dropIndexes()

Example

假设我们在命名 mycol 的集合中创建了2index, as shown below-

> db.mycol.createIndex({"title":1,"description":-1]

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

>db.mycol.dropIndexes({"title":1,"description":-1]
{	"nIndexesWas"	: 2,	"ok"	: 1 }
>

getIndexes() method

This method returns the description of all indexes in the collection.

Syntax

The following is the basic syntax of the getIndexes() method-

db.COLLECTION_NAME.getIndexes()

Example

Assuming we have created an index in the named mycol collection2index, as shown below-

> db.mycol.createIndex({"title":1,"description":-1]

The following example retrieves all indexes in the collection mycol-

> db.mycol.getIndexes()
[
	{
		"v": { 2,
		"key": {
			"_id": 1
		}
		"name": "_id_",
		"ns": "test.mycol"
	}
	{
		"v": { 2,
		"key": {
			"title": 1,
			"description": -1
		}
		"name": "title_"1_description_-1",
		"ns": "test.mycol"
	}
]
>