DBref не е нещо като външен ключ в традиционните релационни системи. Това е само конвенция, която лесно казва на водача (който е в състояние) да зареди автоматично тези посочени документи. Моля, вижте DBRef за повече информация по този въпрос.
В зависимост от използвания драйвер, може да сте в състояние да заредите тези препратки автоматично само когато имате нужда от тях (мързелив), така че производителността трябва да бъде наистина малка. Но режийните разходи за съхранение са малко по-високи от обикновен препратен _id на друг документ. По принцип бих казал, че трябва да използвате тези DBrefs само ако свързаният документ може да бъде от променлив тип. Ако е статичен, значи сте заседнали с _id-референции и може би със собствена функционалност за отложено зареждане, така че да не се повтаряте.
Не се повтаряйте (или дублирането на данни в базата данни) се прилага и във вашия контекст, както MongoDB препоръчва (така че и аз бих го направил), е само свържете вашите документи . В противен случай бихте имали по-голямо използване на хранилището и донякъде продължителни актуализации, за да актуализирате само една логическа единица (дублирана физически много често).
С по-горе споменатия персонализиран мързелив зареждащ механизъм можете да добавите известно кеширане, така че не всяко търсене действително да води до търсене в mongodb. Най-вероятно тогава ще трябва да се погрижите за съгласуваността на вашите данни между кеша и базата данни.