Във вашия случай бих ви посъветвал да използвате референтни данни. Тъй като предполагам, че трябва да манипулирате всяка от тези колекции сама по себе си (трябва да можете да редактирате/изтривате/актуализирате „продукти“ от _id и да правите някои други сложни заявки, което е много по-лесно и ефективно, когато имате отделни колекция).
В същото време бих съхранил някои пълни вградени данни в колекцията на потребителите, само за ускоряване на показването в браузъра на посетителя. Да приемем, че имате страница на потребител, където искате да покажете профила на потребителя и топ 5 пазара и топ 20 продукта. Можете да вградите тези най-нови топ-5 и топ-20 в документа на потребителя и да актуализирате тези вградени обекти, когато има нови пазари/продукти. В този случай - когато показвате потребителска страница, трябва да направите само 1 заявка към MongoDB. Така че това работи като кеш. Ако посетителят трябва да види още продукти, той отива на следващата страница „Продукти“ и прави заявка за отделна колекция „Продукти“ в MongoDB.