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 });