MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB - comportamento estranho de índice descendente


Isso funciona para mim:
> db.h.insert({x:15})
> db.h.createIndex({x:-1})
> db.h.find().min({x:20}).max({x:10})
{ "_id" : ObjectId("52fb6930253ac3dcf43b27f5"), "x" : 15 }

Seu índice pode ter um problema com ele.

A razão pela qual isso funciona é porque o índice é o contrário.

Imagine que você vira uma lista de cabeça para baixo, o que min e max efetivamente dizem é obter um intervalo dessa lista com o mínimo sendo 10 e o máximo sendo 20. No entanto, esse intervalo não existe mais, pois a lista está de cabeça para baixo. Em vez disso, o intervalo deve ser invertido para corresponder à lista.