Unwind toma un documento con un campo arreglo y deuelve un documento para cada elemento del arreglo. Si realizo un unwind luego de haber usado previamente los documentos en un lookup o en otra función de MongoDB en el Pipeline ¿Esto tiene costo 0 o lleva algún costo? ¿Vuelve a pedir los datos del documento a la base de datos para separar el documento en varios?
Y, en general, ¿puedo asumir que el resultado de toda operación anterior no debo volver a solicitarlo? Es decir, si en un pipeline hago un lookup, y luego realizo otro lookup, ¿usar los datos del lookup anterior me generan accesos a los documentos originales en la base de datos de nuevo y con esto un costo adicional?
Pregunto porque tengo entendido que cada documento se procesa secuencialmente a través del pipeline de agregación y se accede solo una vez durante el procesamiento de las etapas, por lo que el unwind debería tener costo 0, ¿es esto así? Quiero asegurarme
Una duda más, si en project accedo, por ejemplo, a "$country.country", ¿eso cuenta como un acceso a un atributo simple o dos? ¿seria costo 0.01 o 0.02? Siento que debería contar como acceder a solamente un atributo simple y tener costo 0.01, pero de nuevo, me gustaría asegurarme.
Saludos y gracias