Eh bien, il n'y a aucun moyen que le $lookup
serait plus rapide que d'avoir la liste des identifiants de commentaires sur l'objet vidéo réel. Je veux dire que vous devez faire une whole other request
à mongo pour les obtenir maintenant. Donc, en termes de performances, la recherche ajouterait du temps. Cela suppose que vous n'utilisez pas mongoose populate
pour "convertir" ces identifiants de commentaires en objets référencés.
Si vous supprimez ensuite les commentaires de la vidéo (ainsi que l'accessoire de comptage réel) et effectuez la recherche, c'est la voie à suivre. Puisque vous correspondez tout de suite dans votre argument et que vous effectuez ensuite une simple lookup
Je ne vois pas en quoi ce serait un goulot d'étranglement pour vous. Vous pouvez également optimiser/modifier/ajuster votre agrégation via explain
etc.
Votre schéma vidéo serait assez propre de cette façon :
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 });