Questo funziona per me:
> db.h.insert({x:15})
> db.h.createIndex({x:-1})
> db.h.find().min({x:20}).max({x:10})
{ "_id" : ObjectId("52fb6930253ac3dcf43b27f5"), "x" : 15 }
Il tuo indice potrebbe avere un problema con esso.
Il motivo per cui funziona è perché l'indice è il contrario.
Immagina di capovolgere una lista, ciò che min e max dicono effettivamente è ottenere un intervallo di quell'elenco con il minimo di 10 e il massimo di 20. Tuttavia quell'intervallo non esiste più poiché l'elenco è capovolto. Invece l'intervallo deve essere invertito in modo che corrisponda all'elenco.