Sto provando a interrogare il mio database per prezzi superiori o inferiori a un numero specificato dall'utente. Nel mio databse, i prezzi sono memorizzati in questo modo:
{price: "300.00"}
Secondo la documentazione, questo dovrebbe funzionare:
db.products.find({price: {$gt:30.00}}).pretty()
ma ottengo risultati restituiti. Ho anche provato {price: {$gt:30}}
.
Cosa mi manca qui?
Perché i prezzi vengono memorizzati come una stringa anziché come un numero nel DB? C'è un modo per aggirare questo?
Woah, non avevo idea di poter usare javascript nella query. Fantastico, grazie. Lo convertirò comunque in un numero, ma questo aiuta molto. – Jascination
Si desidera che il prezzo sia int solo @Jascination l'esecuzione JS non utilizzerà indice, in quanto è praticamente inutile in questo caso, è più semplice rendere lo schema corretto – Sammaye
Si prega di evitare $ dove, viene eseguito in JavaScript e dà un grande successo nelle prestazioni. $ gt può essere utilizzato anche con altri tipi. – Derick