MongoDB Tutorial

Indexes support efficient query resolution. Without indexes, MongoDB must examine each document in a collection to select those documents that match the query statement. This analysis is highly inefficient and requires MongoDB to process a large volume of data.

Indexes are special data structures that store a small portion of the dataset in an easy-to-traverse form. The index stores the value of a specific field or set of fields, sorted by the value of the field specified in the index.

The createIndex() method

To create an index, you must use the

MongoDB createIndex() method.

Syntax

The basic syntax of the createIndex() method is as follows().

>db.

COLLECTION_NAME.createIndex({KEY:1}) Here the key is the

name of the field in which you want to create the index and 1 is for the ascending order. To create an index in descending order, you must use -1.

Example

>db.mycol.createIndex({“title”:1}) { “createdCollectionAutomatically” : false, “numIndexesBefore” : 1, “numIndexesAfter” : 2, “ok” : 1 } > In the createIndex() method, you can pass multiple fields,

to create an index on multiple fields. >db.mycol.createIndex

({“title”:1,”description”:-1}) >

This method also accepts the list of options (which are optional). The following is the list:

Description of the parameter typeboolebackground medium Generates the index in the background so that creating an index does not block other database activities. Specify true to compile in the background. The default value is false. Single Boolean Creates a unique index so that the collection does not accept the insertion of documents where the index key or keys match an existing value in the index. Specify true to create a unique index. The default value is false.name string Index Name. If not specified, MongoDB generates an index name by concatenating the indexed field names and sort order. Sparse Boolean If true, the index refers only to documents with the specified field. These indices use less space, but behave differently in some situations (particularly types). The default value is false. expireAfterSeconds integer Specifies a value, in seconds, as TTL to control how long MongoDB retains documents in this collection.weights document The weight is a number between 1 and 99,999 and denotes the importance of the field in relation to the other indexed fields in terms of the string score.default_language For a full-text index, The language that determines the list of empty words and the rules for the stemmer and tokenizer. The default value is English.language_override string For a full-text index, specify the name of the field in the document it contains, the language to replace the default language. The default value is language. The dropIndex() method

You can delete a particular index using the MongoDB dropIndex() method

.

Syntax

The basic syntax of the DropIndex() method is as follows().

>db.

COLLECTION_NAME.dropIndex({KEY:1})

Here, “key” is the name of the file on which you want to delete an existing index. Instead of the index specification document (syntax above), you can also specify the index name directly as

: dropIndex(“name_of_the_index”)

Example

> db.mycol.dropIndex({“title”:1}) { “ok” : 0, “errmsg” : “can’t find index with key: { title: 1.0 }”, “code” : 27, “codeName” : “IndexNotFound” }

The dropIndexes

() method

This method deletes multiple (specified) indexes from a collection.

Syntax

The basic syntax of the DropIndexes() method is as follows() − >

db. COLLECTION_NAME.dropIndexes()

Example

Suppose we have created 2 indexes in the named mycol collection as shown below

− > db.mycol.createIndex({“title”:1,”description”:-1})

The following example deletes previously created indexes

from mycol − >db.mycol.dropIndexes({“title”:1,”description”:-1}) { “nIndexesWas” : 2, “ok” : 1 } >

The getIndexes() method

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

Syntax

The following is the basic syntax of the getIndexes() − db method

. COLLECTION_NAME.getIndexes()

Example

Suppose we have created

2 indexes in the mycol collection named 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” } ] >

Contact US