MongoDB не поддържа връзки с външни ключове от страна на сървъра, нормализирането също не се препоръчва. Трябва да вградите своя дъщерен обект в родителски обекти, ако е възможно, това ще увеличи производителността и ще направи външните ключове напълно ненужни. Това каза, че не винаги е възможно, така че има специална конструкция, наречена DBRef, която позволява препращане към обекти в различна колекция. Тогава това може да не е толкова бързо, защото DB трябва да прави допълнителни заявки за четене на обекти, но позволява препратка към външен ключ.
Все пак ще трябва да обработвате препратките си ръчно. Само докато търсите вашия DBRef, вие ще видите дали той съществува, DB няма да премине през всички документи, за да търси препратките и да ги премахне, ако целта на препратката вече не съществува. Но мисля, че премахването на всички препратки след изтриване на книгата ще изисква една заявка за колекция, не повече, така че всъщност не е толкова трудно.
Ако вашата схема е по-сложна, тогава вероятно трябва да изберете релационна база данни, а не nosql.
Има и книга за проектиране на бази данни MongoDB:Document Design for MongoDB
АКТУАЛИЗИРАНЕ Книгата по-горе вече не е налична, но поради популярността на MongoDB има доста други. Няма да ги свързвам всички, тъй като такива връзки вероятно ще се променят, простото търсене в Amazon показва множество страници, така че не би трябвало да е проблем да намерите някои.
Вижте страницата с ръководството на MongoDB за „Ръководни препратки“ и DBRefs за допълнителни подробности и примери