In Ihrem Fall würde ich raten, referenzierte Daten zu verwenden. Weil ich annehme, dass Sie jede dieser Sammlungen einzeln manipulieren müssen (Sie müssen in der Lage sein, "Produkte" von _id zu bearbeiten/löschen/aktualisieren und einige andere komplizierte Abfragen durchzuführen, was viel einfacher und effektiver ist, wenn Sie separate Sammlung).
Gleichzeitig würde ich einige speichern vollständig eingebettete Daten in der Benutzersammlung, nur um die Anzeige im Browser des Besuchers zu beschleunigen. Angenommen, Sie haben eine Benutzerseite, auf der Sie das Benutzerprofil sowie die Top-5-Märkte und Top-20-Produkte anzeigen möchten. Sie können diese neuesten Top-5 und Top-20 in das Dokument des Benutzers einbetten und diese eingebetteten Objekte aktualisieren, wenn es neue Märkte/Produkte gibt. In diesem Fall müssen Sie beim Anzeigen der Benutzerseite nur eine Abfrage an MongoDB stellen. Das funktioniert also als Cache. Wenn der Besucher weitere Produkte anzeigen möchte, geht er zur nächsten Seite „Produkte“ und fragt eine separate „Produkte“-Sammlung in MongoDB ab.