Bene, non c'è modo di $lookup
sarebbe più veloce che avere l'elenco degli ID commento sull'oggetto video effettivo. Voglio dire, devi fare un whole other request
a mongo per prenderli ora. Quindi, per quanto riguarda le prestazioni, ovviamente la ricerca aggiungerebbe tempo. Ciò presuppone che tu non stia utilizzando mongoose populate
per "convertire" quegli ID commento negli oggetti di riferimento.
Se stai quindi rimuovendo i commenti dal video (così come il conteggio effettivo) e facendo la ricerca è la strada da percorrere. Dato che stai trovando subito una corrispondenza nel tuo arg e quindi stai facendo una semplice lookup
Non vedo come questo sarebbe un collo di bottiglia per te. Inoltre puoi ottimizzare/modificare/regolare la tua aggregazione tramite spiega
ecc.
Il tuo schema video sarebbe abbastanza pulito in questo modo:
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 });