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

Simpan enum MongoDB

TL;DR:String mungkin lebih aman pilihan, dan perbedaan kinerja harus diabaikan. Bilangan bulat masuk akal untuk koleksi besar di mana enum harus diindeks. YMMV.

Benar.

Ini adalah manfaat utama bilangan bulat menurut saya. Namun, Anda juga harus memastikan nilai yang terkait dari enum jangan berubah. Jika Anda mengacaukannya, Anda hampir pasti akan mendatangkan malapetaka , yang merupakan kerugian besar.

Jika Anda benar-benar menggunakan tipe data enum, itu mungkin semacam integer secara internal, jadi integer harus membutuhkan lebih sedikit pemrosesan. Either way, overhead itu harus diabaikan.

Saya mengulangi banyak dari apa yang telah dikatakan, tetapi mungkin itu membantu pembaca lain. Kesimpulannya:

  • Mencampur peta nilai enum akan mendatangkan malapetaka. Bayangkan Declined your Anda status tiba-tiba ditafsirkan sebagai Accepted , karena Declined memiliki nilai '2' dan sekarang Accepted karena Anda menyusun ulang enum dan lupa menetapkan nilai secara manual... (bergidik )
  • String lebih ekspresif
  • Bilangan membutuhkan lebih sedikit ruang. Ruang disk biasanya tidak masalah, tetapi ruang indeks akan memakan RAM yang mahal.
  • Pembaruan bilangan bulat tidak mengubah ukuran objek. String, jika panjangnya sangat bervariasi, mungkin memerlukan realokasi. Namun, padding string dan faktor padding seharusnya dapat mengatasi hal ini.
  • Integer dapat berupa flag (belum dapat ditanyakan (belum), sayangnya, lihat SERVER-3518 )
  • Bilangan bulat dapat ditanyakan dengan $gt / $lt sehingga Anda dapat secara efisien mengimplementasikan $or . yang kompleks kueri, meskipun itu adalah persyaratan yang agak misterius dan tidak ada yang salah dengan $or pertanyaan...



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Driver Mongo C#:Deserialisasi BsonValue

  2. RangeError:Panjang buffer array tidak valid - Meteor JS

  3. Apa perbedaan antara dua kueri MongoDB ini?

  4. nodejs - asli mongodb temukan semua dokumen

  5. MongoDB:$atau pencarian teks lengkap dan $in