MongoDB Indexes
Creating and managing indexes
Create Index
db.users.createIndex({ email: 1 }); # ascending index
db.users.createIndex({ age: -1 }); # descending index
Compound Index
db.users.createIndex({ country: 1, city: 1 }); # multi-field index
Unique Index
db.users.createIndex(
{ email: 1 },
{ unique: true }
); # unique constraint
Text Index
db.articles.createIndex({ content: 'text' }); # full-text search
db.articles.find({ $text: { $search: 'mongodb' } }); # search text
Partial Index
db.users.createIndex(
{ email: 1 },
{ partialFilterExpression: { age: { $gte: 18 } } }
); # index subset
TTL Index
db.sessions.createIndex(
{ createdAt: 1 },
{ expireAfterSeconds: 3600 }
); # auto-delete after 1 hour
Manage Indexes
db.users.getIndexes(); # list indexes
db.users.dropIndex('email_1'); # drop specific index
db.users.dropIndexes(); # drop all indexes (except _id)