Tratando de calcular el interés compuesto en mi consulta de agregación.
Creé esta matriz de factores de retorno semanales y asumí un valor inicial de $ 100
{ "investThis": 100, "wklyReturns" : [ 0.953268776798189, 1.00703473704638, 0.994451681381773, 1.05357596706145, 0.99028490888956, 0.981037037037037, 1.01519025417356, 0.990515443440262, 1.01512249218671, 1.01603072983355, 0.991167064317986, 0.919182492650833, 0.991854491599945, 0.971319397617442, ... ] }Todo lo que necesita hacer es multiplicar "investThis" por el factor de retorno de índice 0, luego reutilizar el resultado y multiplicarlo por el factor de retorno de índice 0+1, hasta el final de la lista de retornos semanales.
Aquí hay un par de capturas de pantalla del cálculo de la hoja de Google...
Cualquier ayuda es muy apreciada 🙏
Si entiendo correctamente, todo lo que necesita hacer es agregar su agregación un paso más:
{ $project: { "results": { $reduce: { input: "$wklyReturns", initialValue: "$investThis", in: { $multiply: [ "$$value", "$$this" ] } } } } } Como se puede ver en el patio de recreo . La operación $reduce le permite repetir una acción cada vez usando el resultado anterior.