Toto funguje pro mě:
> db.h.insert({x:15})
> db.h.createIndex({x:-1})
> db.h.find().min({x:20}).max({x:10})
{ "_id" : ObjectId("52fb6930253ac3dcf43b27f5"), "x" : 15 }
Váš index s tím může mít problém.
Důvod, proč to funguje, je ten, že index je opačný.
Představte si, že otočíte seznam na hlavu, co v podstatě říká min a max, je získat rozsah tohoto seznamu, přičemž min je 10 a max je 20. Tento rozsah však již neexistuje, protože seznam je vzhůru nohama. Místo toho musí být rozsah obrácen, aby odpovídal seznamu.