これは私にとってはうまくいきます:
> db.h.insert({x:15})
> db.h.createIndex({x:-1})
> db.h.find().min({x:20}).max({x:10})
{ "_id" : ObjectId("52fb6930253ac3dcf43b27f5"), "x" : 15 }
インデックスに問題がある可能性があります。
これが機能する理由は、インデックスが逆であるためです。
リストを頭に向けると、最小値と最大値が効果的に言うのは、最小値が10、最大値が20のリストの範囲を取得することです。ただし、リストが上下逆になっているため、その範囲は存在しなくなります。代わりに、リストと一致するように範囲を逆にする必要があります。