Nå, der er ingen måde $lookup
på ville være hurtigere end at have listen over kommentar-id'erne på det faktiske videoobjekt. Jeg mener, du skal lave en whole other request
til mongo for at få dem nu. Så ydelsesmæssigt ville opslaget naturligvis tilføje tid. Det antager, at du ikke bruger mongoose populate
at "konvertere" disse kommentar-id'er til de refererede objekter.
Hvis du derefter fjerner kommentarerne fra videoen (såvel som den faktiske optællingsrekvisit) og laver opslag er vejen at gå. Da du matcher med det samme i din arg og derefter laver et simpelt lookup
Jeg kan ikke se, hvordan dette ville være en flaskehals for dig. Du kan også optimere/ændre/justere din aggregering via forklar
osv.
Dit videoskema ville være ret rent på den måde:
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 });