Lets say I have document with the following two keys:
1) key1
2) key2
If I am creating compound index on both of them..
In MongoDB, you can use index prefix to query the database. You can't use anything else. If your query does not contain key prefix the index won't be used.
Assuming your proposed index {'key1':1,'key2':1}
:
db.some.find({key1 : {$gt : 100}})
- uses prefixdb.some.find({key1 : {$gt : 100}, key2 : {$lt : 30}})
- uses full indexdb.some.find({key3 : 'test'}).sort({key1 : 1})
- uses prefix for sort (direction match)db.some.find({key2 : {$gt : 100}})
- index order matters - key2 is not prefixdb.some.find({key3 : 'test'}).sort({key1 : -1})
- index direction matters for multicolumn indexesdb.some.find({key3 : 'test'}).sort({key2 : 1})
- it's not prefix