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

Metode meteor vs. aturan tolak/izinkan

Biasanya saya mencoba untuk menghindari jawaban subjektif, tetapi ini adalah perdebatan yang sangat penting. Pertama, saya sarankan membaca Metode Meteor vs Operasi Sisi Klien dari blog Discover Meteor. Perhatikan bahwa di Edthena kami secara eksklusif menggunakan metode untuk alasan yang seharusnya menjadi jelas.

Metode

pro

  • Metode dapat menerapkan skema dan aturan validasi kompleksitas arbitrer dengan benar tanpa memerlukan perpustakaan luar. Catatan tambahan - cek adalah alat yang sangat baik untuk memvalidasi struktur masukan Anda.

  • Setiap metode adalah satu sumber kebenaran dalam aplikasi Anda. Jika Anda membuat metode 'posts.insert', Anda dapat dengan mudah memastikan bahwa itu adalah satu-satunya cara di aplikasi Anda untuk menyisipkan postingan.

kon

  • Metode memerlukan gaya imperatif, dan cenderung bertele-tele dalam kaitannya dengan jumlah validasi yang diperlukan untuk suatu operasi.

Operasi Sisi Klien

pro

  • allow /deny memiliki gaya deklaratif sederhana.

kon

  • Memvalidasi skema dan izin pada update operasi sangat sulit. Jika Anda perlu menerapkan skema, Anda harus menggunakan perpustakaan luar seperti collection2. Alasan ini saja seharusnya membuat Anda berhenti sejenak.

  • Modifikasi dapat tersebar di seluruh aplikasi Anda. Oleh karena itu, mungkin sulit untuk mengidentifikasi mengapa operasi basis data tertentu terjadi.

Ringkasan

Menurut saya, allow /deny lebih estetis, namun kelemahan mendasarnya adalah dalam menegakkan izin (terutama pada pembaruan). Saya akan merekomendasikan operasi sisi klien dalam kasus di mana:

  • Basis kode Anda relatif kecil - sehingga mudah dipahami untuk semua kejadian di mana pengubah tertentu terjadi.

  • Anda tidak memiliki banyak pengembang - jadi Anda tidak perlu semua setuju bahwa hanya ada satu cara untuk menyisipkan ke X koleksi.

  • Anda memiliki aturan izin sederhana - mis. hanya pemilik dokumen yang dapat mengubah aspek apa pun.

Menurut pendapat saya, menggunakan operasi sisi klien adalah pilihan yang masuk akal saat membangun MVP, tetapi saya akan beralih ke metode untuk semua situasi lain.

perbarui 22/2/15

Sashko Stubailo membuat proposal untuk mengganti allow/deny dengan metode insert/update/remove.

perbarui 1/6/16

Pemandu meteor mengambil posisi yang allow/deny harus selalu dihindari.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. cari di agregasi mongodb

  2. Dapatkan _id dari dokumen yang dimasukkan dalam database Mongo di NodeJS

  3. runCommand setara untuk nodejs-native-mongodb

  4. Bagaimana cara mengkonfigurasi cluster MongoDB yang mendukung sesi?

  5. 10 Tips untuk Meningkatkan Keamanan MongoDB Anda