MongoDB tidak mendukung hubungan kunci asing sisi server, normalisasi juga tidak disarankan. Anda harus menyematkan objek anak Anda di dalam objek induk jika memungkinkan, ini akan meningkatkan kinerja dan membuat kunci asing sama sekali tidak diperlukan. Yang mengatakan itu tidak selalu mungkin, jadi ada konstruksi khusus yang disebut DBRef yang memungkinkan untuk mereferensikan objek dalam koleksi yang berbeda. Ini mungkin tidak begitu cepat karena DB harus membuat kueri tambahan untuk membaca objek tetapi memungkinkan jenis referensi kunci asing.
Tetap saja Anda harus menangani referensi Anda secara manual. Hanya saat mencari DBRef Anda, Anda akan melihat apakah itu ada, DB tidak akan memeriksa semua dokumen untuk mencari referensi dan menghapusnya jika target referensi tidak ada lagi. Tapi saya pikir menghapus semua referensi setelah menghapus buku akan membutuhkan satu kueri per koleksi, tidak lebih, jadi tidak terlalu sulit.
Jika skema Anda lebih kompleks maka mungkin Anda harus memilih database relasional dan bukan nosql.
Ada juga buku tentang mendesain database MongoDB:Desain Dokumen untuk MongoDB
PERBARUI Buku di atas sudah tidak tersedia lagi, namun karena popularitas MongoDB ada cukup banyak buku lainnya. Saya tidak akan menautkan semuanya, karena tautan seperti itu kemungkinan besar akan berubah, pencarian sederhana di Amazon menunjukkan beberapa halaman sehingga tidak menjadi masalah untuk menemukannya.
Lihat halaman manual MongoDB untuk 'Referensi manual' dan DBRefs untuk spesifikasi dan contoh lebih lanjut