Atualização: A partir de agora, o mongodb possui índices que não diferenciam maiúsculas de minúsculas:
Users.find({})
.collation({locale: "en" })
.sort({name: 1})
.exec()
.then(...)
Concha:
db.getCollection('users')
.find({})
.collation({'locale':'en'})
.sort({'firstName':1})
Atualização: Esta resposta está desatualizada, 3.4 terá índices que não diferenciam maiúsculas de minúsculas. Consulte o JIRA para obter mais informações https://jira.mongodb.org/browse/SERVER-90
Infelizmente, o MongoDB ainda não possui índices que não diferenciam maiúsculas de minúsculas:https://jira.mongodb.org/browse/SERVER-90 e a tarefa foi adiada.
Isso significa que a única maneira de classificar sem distinção entre maiúsculas e minúsculas atualmente é criar um campo específico de "minúsculas", copiando o valor (minúsculas, é claro) do campo de classificação em questão e classificando-o.