MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mongo Cast String ke Number untuk Query

Pembaruan (berlaku dari MongoDB v4.0 dan seterusnya):

Anda dapat menggunakan kombinasi $expr dan $toDouble untuk mencapai perilaku yang diinginkan seperti ini:

db.MyCollection.find({ $expr: { $lte: [ { $toDouble: "$Price" }, 1000.0 ] } })

Jawaban Asli (MongoDB v3.6 ke bawah):

MongoDB tidak dapat mengonversi string menjadi angka. Jadi satu-satunya pilihan Anda di sini adalah menggunakan $where yang ditakuti operator:

db.MyCollection.find({ $where: "parseInt(this.Price) <= 1000" })

Ini tidak akan menggunakan indeks apa pun dan tidak terlalu cepat, tetapi mungkin masih cukup baik untuk koleksi kecil.

Meskipun demikian saya akan merekomendasikan menyimpan angka sebagai tipe numerik. Jadi, Anda harus mengonversi string . Anda s ke int s atau long s (atau mungkin double s even) seperti yang ditunjukkan di sini: cara mengubah string menjadi nilai numerik di mongodb




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Menggunakan $push dalam Array di luwak

  2. Gunakan pymongo di Django secara langsung

  3. Domain Kustom Heroku Tidak Berfungsi

  4. Bagaimana cara menginisialisasi kumpulan replikasi mongodb tanpa memanggil rs.initiate()?

  5. Menguraikan kesalahan saat menyambung ke instance mongo yang dihosting di <project>.meteor.com