This command creates an ascending index on the lastName field in the customers collection to make searches by last name faster.
MongoDB
db.customers.createIndex({ lastName: 1 })
OutputSuccess
Important Notes
Creating indexes can take time on large collections, so plan accordingly.
Indexes use extra storage space but improve query speed.
Use unique indexes to enforce data rules like no duplicate emails.
Summary
createIndex makes searches faster by organizing data.
You can create ascending or descending indexes on fields.
Unique indexes prevent duplicate values in a field.
Practice
(1/5)
1. What is the main purpose of the createIndex method in MongoDB?
easy
A. To speed up queries by creating an index on a field
B. To delete documents from a collection
C. To update multiple documents at once
D. To create a new collection
Solution
Step 1: Understand what createIndex does
The createIndex method organizes data to make searches faster.
Step 2: Identify the correct purpose
It does not delete or update documents, nor create collections, only speeds up queries.
Final Answer:
To speed up queries by creating an index on a field -> Option A
Quick Check:
createIndex speeds up queries [OK]
Hint: Remember: createIndex speeds up searches, not data changes [OK]
Common Mistakes:
Confusing createIndex with delete or update operations
Thinking createIndex creates collections
Assuming createIndex modifies documents
2. Which of the following is the correct syntax to create an ascending index on the field age in MongoDB?
easy
A. db.collection.createIndex({ age: 1 })
B. db.collection.createIndex(age: 1)
C. db.collection.createIndex({ age: -1 })
D. db.collection.createIndex({ age })
Solution
Step 1: Recall syntax for createIndex
The method requires an object with field names as keys and 1 or -1 as values for ascending or descending.
Step 2: Identify correct ascending index syntax
{ age: 1 } means ascending index on age. Other options are either descending (-1) or invalid syntax.
Final Answer:
db.collection.createIndex({ age: 1 }) -> Option A
Quick Check:
Ascending index uses 1 [OK]
Hint: Use 1 for ascending, -1 for descending in createIndex [OK]
Common Mistakes:
Using -1 for ascending index
Missing curly braces around field and order
Passing field without object braces
3. Given the command db.users.createIndex({ email: 1 }, { unique: true }), what will happen if you try to insert two documents with the same email value?
medium
A. The index will be ignored and duplicates allowed
B. Both documents will be inserted without error
C. The second insert will fail due to duplicate key error
D. MongoDB will automatically update the first document
Solution
Step 1: Understand unique index effect
Unique index prevents duplicate values in the indexed field.
Step 2: Predict behavior on duplicate insert
Inserting a duplicate email will cause an error and reject the second insert.
Final Answer:
The second insert will fail due to duplicate key error -> Option C
Quick Check:
Unique index blocks duplicates [OK]
Hint: Unique index stops duplicate values in that field [OK]
Common Mistakes:
Assuming duplicates are allowed with unique index
Thinking MongoDB auto-updates duplicates
Believing index is ignored on duplicates
4. What is wrong with this command? db.products.createIndex({ price: 'ascending' })
medium
A. The field name must be a string
B. The collection name is missing
C. createIndex cannot be used on numeric fields
D. The index order must be 1 or -1, not 'ascending'
Solution
Step 1: Check index order values
MongoDB requires 1 for ascending or -1 for descending, not strings like 'ascending'.
Step 2: Identify error cause
Using 'ascending' causes syntax error because it's not a valid order value.
Final Answer:
The index order must be 1 or -1, not 'ascending' -> Option D
Quick Check:
Index order must be 1 or -1 [OK]
Hint: Use 1 or -1 for index order, not words [OK]
Common Mistakes:
Using string values instead of 1 or -1
Thinking createIndex can't index numbers
Confusing collection name with index fields
5. You want to create a compound index on lastName (ascending) and age (descending) fields, ensuring no two documents have the same combination. Which command is correct?
Compound index uses an object with multiple fields and their order: 1 for ascending, -1 for descending.
Step 2: Check uniqueness and order
db.collection.createIndex({ lastName: 1, age: -1 }, { unique: true }) matches ascending lastName (1), descending age (-1), and unique true to prevent duplicates.
Step 3: Verify other options
db.collection.createIndex({ lastName: -1, age: 1 }, { unique: false }) reverses order and is not unique; C uses ascending age instead of descending; D uses invalid string values.