db.people.createIndex({name: 1, age: -1})
This creates an index on multiple fields, in this case on the name
and age
fields. It will be ascending in name
and descending in age
.
In this type of index, the sort order is relevant, because it will determine whether the index can support a sort operation or not. Reverse sorting is supported on any prefix of a compound index, as long as the sort is in the reverse sort direction for all of the keys in the sort. Otherwise, sorting for compound indexes need to match the order of the index.
Field order is also important, in this case the index will be sorted first by name
, and within each name value, sorted by the values of the age
field. This allows the index to be used by queries on the name
field, or on name
and age
, but not on age
alone.