- 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:
var createAscendingIndex = function(db, callback) {
// Get the users collection
var 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:
var createDescendingIndex = function(db, callback) {
// Get the documents collection
var 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:
var createCompoundIndex = function(db, callback) {
// Get the documents collection
var 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 content
field:
var createTextIndex = function(db, callback) {
// Get the documents collection
var 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:
var createHashedIndex = function(db, callback) {
// Get the documents collection
var 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:
var create2dSphereIndex = function(db, callback) {
// Get the documents collection
var 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:
var create2dIndex = function(db, callback) {
// Get the documents collection
var 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
var createUniqueIndex = function(db, callback) {
// Get the documents collection
var 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
var createPartialIndex = function(db, callback) {
// Get the documents collection
var 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.