Nou, er is geen manier om de $lookup
zou sneller zijn dan het hebben van de lijst met commentaar-ID's op het eigenlijke video-object. Ik bedoel, je moet een whole other request
doen naar Mongo om ze nu te krijgen. Dus qua prestaties zou het opzoeken natuurlijk tijd toevoegen. Dat veronderstelt dat je mongoose populate
niet gebruikt om die commentaar-ID's te "converteren" naar de objecten waarnaar wordt verwezen.
Als je vervolgens de opmerkingen uit de video verwijdert (evenals de werkelijke tellingsprop) en het opzoeken doet, is de juiste keuze. Omdat je meteen matcht in je arg en dan een simpele lookup
doet Ik zie niet in hoe dit een bottleneck voor u zou zijn. U kunt ook uw aggregatie optimaliseren/wijzigen/afstemmen via uitleggen
enz.
Je videoschema zou op die manier behoorlijk schoon zijn:
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 });