sql >> Base de Datos >  >> NoSQL >> MongoDB

mongodb agregado $ buscar vs encontrar y poblar

Bueno, no hay forma de que $lookup sería más rápido que tener la lista de ID de comentarios en el objeto de video real. Quiero decir que tienes que hacer una whole other request a mongo para conseguirlos ahora. Entonces, en cuanto al rendimiento, obviamente, la búsqueda agregaría tiempo. Eso es asumiendo que no está usando mongoose populate para "convertir" esos identificadores de comentarios en los objetos a los que se hace referencia.

Si luego está eliminando los comentarios del video (así como el accesorio de conteo real) y hacer la búsqueda es el camino a seguir. Ya que está haciendo coincidir de inmediato en su argumento y luego haciendo una simple lookup No veo cómo esto sería un cuello de botella para ti. También puede optimizar/cambiar/afinar su agregación vie explain etc.

Tu esquema de video sería bastante limpio de esa manera:

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