Dalam banyak hal, API meteor mendorong dokumen relasional datar, namun MongoDB adalah penyimpanan data non-relasional. Sayangnya, konflik ini dibiarkan sebagai latihan untuk diselesaikan oleh pengembang.
Gagasan tentang struktur skema dan gabungan adalah topik yang sangat besar untuk dibahas dalam satu jawaban, jadi saya akan berusaha sesingkat mungkin.
Alasan mengapa Anda harus memilih model relasional
Asumsikan Anda memiliki komentar dan data posting. Pertimbangkan apa yang akan terjadi jika Anda menyematkan komentar dalam postingan Anda.
-
DDP beroperasi pada dokumen. Semua komentar akan dikirim setiap kali komentar baru di postingan yang sama ditambahkan.
-
allow
dandeny
aturan beroperasi pada dokumen. Mungkin tidak masuk akal untuk mengharapkan bahwa aturan yang sama berlaku secara bersamaan untuk postingan dan komentar. -
Publikasi cenderung lebih masuk akal dalam hal koleksi. Dalam skenario di atas, kami tidak dapat dengan mudah memublikasikan daftar komentar yang terlepas dari postingan mereka.
-
Database relasional ada untuk alasan yang baik. Salah satunya adalah menghindari masalah modifikasi ganda yang melekat pada solusi kedua Anda.
Alasan mengapa Anda harus memilih model tersemat
- Gabung tidak didukung secara asli oleh MongoDB, dan tidak ada paket inti untuk menghasilkan gabungan reaktif.
Rekomendasi
Gunakan solusi ketiga Anda. Dalam pengalaman saya, alasan untuk memilih model relasional jauh lebih besar daripada batasan yang diberlakukan oleh penyimpanan data. Tentu saja mengatasi kurangnya bergabung tidak mudah, tetapi rasa sakitnya mungkin hanya terisolasi pada beberapa fungsi publish. Berikut adalah beberapa sumber yang sangat saya rekomendasikan:
-
Cara mempublikasikan hubungan banyak-ke-banyak di EventedMind. Chris membahas kasus penggunaan Anda secara mendetail, namun ia secara manual melakukan penggabungan reaktif dengan panggilan balik observasi, yang tidak saya rekomendasikan.
-
Reaktif bergabung dalam meteor dari Discover Meteor Encyclopedia. Ini mencakup dasar-dasar bagaimana dan mengapa seseorang harus melakukan join reaktif.
-
Bab denormalisasi dari Discover Meteor. Ini mencakup banyak poin yang saya buat di atas dan juga berbicara tentang kapan dan bagaimana mendenormalisasi beberapa data Anda.
-
Anda dapat menggunakan Publikasikan dengan relasi untuk menggabungkan data Anda. Paket alternatif meliputi:publikasi cerdas, publikasikan komposit, dan publikasi sederhana.
Jika Anda memerlukan informasi lebih lanjut di luar ini, silakan komentar di bawah dan saya akan memperbarui jawaban saya.