MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB - comportamento strano dell'indice discendente

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.