Dalam kasus Anda, saya akan menyarankan untuk menggunakan data yang direferensikan. Karena saya kira Anda perlu memanipulasi masing-masing koleksi itu sendiri (Anda harus dapat mengedit/menghapus/memperbarui "produk" dengan _id, dan melakukan beberapa kueri rumit lainnya, yang jauh lebih mudah dan efektif bila Anda memiliki koleksi).
Pada saat yang sama saya akan menyimpan beberapa data tertanam penuh dalam koleksi Pengguna, hanya untuk mempercepat tampilan ke browser pengunjung. Katakanlah Anda memiliki halaman pengguna tempat Anda ingin menampilkan profil pengguna dan 5 pasar teratas dan 20 produk teratas. Anda dapat menyematkan top-5 dan top-20 terbaru tersebut ke dokumen Pengguna dan memperbarui objek yang disematkan tersebut ketika ada pasar/produk baru. Dalam hal ini - ketika Anda menampilkan halaman pengguna, Anda hanya perlu membuat 1 kueri ke MongoDB. Jadi ini berfungsi sebagai cache. Jika pengunjung perlu melihat lebih banyak produk, ia membuka halaman berikutnya "Produk" dan menanyakan koleksi "Produk" terpisah di MongoDB.