- Tutorials
- Create Indexes
Create Indexes
To create an index on a field or fields, pass an index specification document to the createIndex()
method:
{ <field1>: <type1>, <field2>: <type2> ... }
Create an Ascending Index
For an ascending index type, specify 1
for <type>
.
The following example creates an ascending index key for the dateOfBirth
field:
function createAscendingIndex(db, callback) { // Get the users collection const collection = db.collection('users'); // Create the index collection.createIndex( { dateOfBirth : 1 }, function(err, result) { console.log(result); callback(result); }); };
Create a Descending Index
For an descending index type, specify -1
for <type>
.
The following example specifies a descending index key on the lastName
field:
function createDescendingIndex(db, callback) { // Get the documents collection const collection = db.collection('users'); // Create the index collection.createIndex( { lastName : -1 }, function(err, result) { console.log(result); callback(result); }); };
Create a Compound Index
To specify a compound index, use the compoundIndex
method.
The following example specifies a compound index key composed of the lastName
field sorted in descending order, followed by the dateOfBirth
field sorted in ascending order:
function createCompoundIndex(db, callback) { // Get the documents collection const collection = db.collection('users'); // Create the index collection.createIndex( { lastName : -1, dateOfBirth : 1 }, function(err, result) { console.log(result); callback(result); }); };
Create a Text Index
MongoDB also provides text indexes to support text search of string content. Text indexes can include any field whose value is a string or an array of string elements.
This example specifies a text index key for the comments
field:
function createTextIndex(db, callback) { // Get the documents collection const collection = db.collection('users'); // Create the index collection.createIndex( { comments : "text" }, function(err, result) { console.log(result); callback(result); }); };
Create a Hashed Index
To specify a hashed index key, use the hashed
method.
This example specifies a hashed index key for the timestamp
field:
function createHashedIndex(db, callback) { // Get the documents collection const collection = db.collection('users'); // Create the index collection.createIndex( { timestamp : "hashed" }, function(err, result) { console.log(result); callback(result); }); };
Create Geospatial Indexes
There are also helpers for creating the index keys for the various geospatial indexes supported by mongodb.
Create a 2dsphere
Index
To specify a 2dsphere index key, use one of the geo2dsphere
methods.
This example specifies a 2dsphere index on the location
field:
function create2dSphereIndex(db, callback) { // Get the documents collection const collection = db.collection('users'); // Create the index collection.createIndex( { location : "2dsphere" }, function(err, result) { console.log(result); callback(result); }); };
Create a 2d
Index
To specify a 2d index key, use the geo2d
method.
.. important::
A 2d index is for data stored as points on a two-dimensional plane and is intended for legacy coordinate pairs used in MongoDB 2.2 and earlier.
This example specifies a 2d index on the points
field:
function create2dIndex(db, callback) { // Get the documents collection const collection = db.collection('users'); // Create the index collection.createIndex( { points : "2d" }, function(err, result) { console.log(result); callback(result); }); };
IndexOptions
In addition to the index specification document, createIndex
method can take an index options document, such as to create unique indexes or partial indexes.
Create a Unique Index
function createUniqueIndex(db, callback) { // Get the documents collection const collection = db.collection('users'); // Create the index collection.createIndex( { lastName : -1, dateOfBirth : 1 }, { unique:true }, function(err, result) { console.log(result); callback(result); }); };
Create a Partial Index
function createPartialIndex(db, callback) { // Get the documents collection const collection = db.collection('users'); // Create the index collection.createIndex( { lastName : 1, firstName: 1 }, { partialFilterExpression: { points: { $gt: 5 } } }, function(err, result) { console.log(result); callback(result); }); };
For other index options, see Index Options.