MongoDB - Indexing
Indexes support the efficient resolution of queries. Without indexes, MongoDB must scan every document of a collection to select those documents that match the query statement. This scan is highly inefficient and require MongoDB to process a large volume of data.
Indexes are special data structures, that store a small portion of the data set in an easy-to-traverse form. The index stores the value of a specific field or set of fields, ordered by the value of the field as specified in the index.
The createIndex() MethodTo create an index, you need to use createIndex() method of MongoDB.
SyntaxThe basic syntax of createIndex() method is as follows().
>db.COLLECTION_NAME.createIndex({KEY:1})
Here key is the name of the field on which you want to create index and 1 is for ascending order. To create index in descending order you need to use -1.
Example>db.mycol.createIndex({"title":1}) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 } >
In createIndex() method you can pass multiple fields, to create index on multiple fields.
>db.mycol.createIndex({"title":1,"description":-1}) >
This method also accepts list of options (which are optional). Following is the list −
The dropIndex() method
You can drop a particular index using the dropIndex() method of MongoDB.
SyntaxThe basic syntax of DropIndex() method is as follows().
>db.COLLECTION_NAME.dropIndex({KEY:1})
Here key is the name of the file on which you want to create index and 1 is for ascending order. To create index in descending order you need to use -1.
Example> db.mycol.dropIndex({"title":1}) { "ok" : 0, "errmsg" : "can't find index with key: { title: 1.0 }", "code" : 27, "codeName" : "IndexNotFound" }
This method deletes multiple (specified) indexes on a collection.
SyntaxThe basic syntax of DropIndexes() method is as follows() −
>db.COLLECTION_NAME.dropIndexes()
Assume we have created 2 indexes in the named mycol collection as shown below −
> db.mycol.createIndex({"title":1,"description":-1})
Following example removes the above created indexes of mycol −
>db.mycol.dropIndexes({"title":1,"description":-1}) { "nIndexesWas" : 2, "ok" : 1 } >
This method returns the description of all the indexes int the collection.
SyntaxFollowing is the basic syntax od the getIndexes() method −
db.COLLECTION_NAME.getIndexes()
Assume we have created 2 indexes in the named mycol collection as shown below −
> db.mycol.createIndex({"title":1,"description":-1})
Following example retrieves all the 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" } ] >
Comments
Post a Comment