Itu tergantung.
Itu tergantung pada berapa banyak dari masing-masing jenis objek yang Anda harapkan. Bisakah Anda memasukkan semuanya ke dalam satu dokumen MongoDB untuk Topik tertentu? Mungkin tidak.
Itu tergantung pada hubungan - apakah Anda memiliki hubungan satu-ke-banyak atau banyak-ke-banyak? Jika satu-ke-banyak dan jumlah entitas terkait kecil, Anda dapat memilih untuk menyematkannya dalam IList pada dokumen. Jika banyak-ke-banyak, Anda mungkin memilih untuk menggunakan hubungan yang lebih tradisional atau Anda mungkin memilih untuk menyematkan kedua sisi sebagai IList.
Anda masih dapat memodelkan hubungan di MongoDB dengan koleksi terpisah TETAPI tidak ada gabungan dalam database sehingga Anda harus melakukannya dalam kode. Memuat Topik dan kemudian memuat Komentar untuk itu mungkin baik-baik saja dari perspektif kinerja.
Kiat lainnya:
Dengan MongoDB Anda dapat mengindeks array INTO pada dokumen. Jadi jangan menganggap Indeks hanya sebagai indeks pada bidang sederhana pada dokumen (seperti SQL). Anda dapat menggunakan, katakanlah, koleksi Tag pada Topik dan indeks ke dalam tag. (Lihat http://www.mongodb.org/display/DOCS/Indexes #Indexes-Arrays )
Saat Anda mengambil atau menulis data, Anda dapat melakukan pembacaan sebagian dan penulisan sebagian pada dokumen apa pun. (lihat http://www.mongodb.org/display /DOCS/Retrieving+a+Subset+of+Fields )
Dan, akhirnya, ketika Anda tidak dapat melihat cara mendapatkan apa yang Anda inginkan menggunakan koleksi dan indeks, Anda mungkin dapat mencapainya menggunakan pengurangan peta. Misalnya, untuk menemukan semua tag yang sedang digunakan diurutkan berdasarkan frekuensi penggunaannya, Anda akan memetakan setiap Topik yang memancarkan tag yang digunakan di dalamnya, dan kemudian Anda akan mengurangi set itu untuk mendapatkan hasil yang Anda inginkan. Anda kemudian dapat menyimpan hasil pengurangan peta tersebut secara permanen dan hanya memperbaruinya jika diperlukan.
Ini adalah perubahan pikiran yang cukup signifikan dari pemikiran relasional, tetapi itu sepadan jika Anda membutuhkan skalabilitas dan fleksibilitas yang dibawa oleh pendekatan NOSQL.