Neexistuje žádný způsob, jak $lookup
by bylo rychlejší než mít seznam ID komentářů na skutečném objektu videa. Chci říct, že musíte udělat whole other request
mongo, abych je dostal hned. Takže z hlediska výkonu by vyhledávání samozřejmě přidalo čas. To za předpokladu, že nepoužíváte mongoose populate
"převést" tato ID komentářů na odkazované objekty.
Pokud poté odstraníte komentáře z videa (stejně jako skutečný počet rekvizit) a provedete vyhledávání, je to správná cesta. Vzhledem k tomu, že se ihned shodujete ve svém argumentu a poté provedete jednoduché lookup
Nechápu, jak by to pro vás mohlo být překážkou. Svou agregaci můžete také optimalizovat/změnit/vyladit pomocí vysvětlení
atd.
Vaše schéma videa by tak bylo docela čisté:
const VideoSchema = new mongoose.Schema({
caption: {
type: String,
trim: true,
maxlength: 512,
required: true,
},
owner: {
type: mongoose.Schema.ObjectId,
ref: 'User',
required: true,
},
// some more fields
}, { timestamps: true });