Ich versuche, meine Datenbank nach Preisen abzufragen, die größer/kleiner als eine vom Benutzer angegebene Nummer sind. In meinem databse werden die Preise wie so gespeichert:
{price: "300.00"}
die Dokumentation nach, sollte diese Arbeit:
db.products.find({price: {$gt:30.00}}).pretty()
Aber ich bekomme keine Ergebnisse zurückgegeben. Ich habe auch versucht {price: {$gt:30}}
.
Was fehlt mir hier?
Es ist, weil die Preise als String statt als Zahl in der DB gespeichert sind? Gibt es einen Weg dahin?
Woah, hatte keine Ahnung, dass Sie Javascript in der Abfrage verwenden könnten. Super, danke. Ich werde es trotzdem in eine Zahl umwandeln, aber das hilft sehr. – Jascination
Sie möchten, dass ein Preis int nur @Jascination die JS-Ausführung wird keinen Index verwenden, als solche ist es in diesem Fall ziemlich nutzlos, einfacher zu machen Ihr Schema richtig – Sammaye
Bitte vermeiden Sie $ wo, es wird in JavaScript und ausgeführt gibt einen großen Performance-Hit. $ gt kann auch mit anderen Typen verwendet werden. – Derick