Funciones de ventana
Calcula sobre los documentos vecinos sin agruparlos, con $setWindowFields.
Calcula sobre los documentos vecinos sin agruparlos con $setWindowFields. Sirve para totales acumulados, medias
móviles o rankings.
Requisitos
- Una conexión con un usuario que tenga
readsobre la base.
Total acumulado por cliente
JavaScript
db.pedidos.aggregate([
{
$setWindowFields: {
partitionBy: "$cliente",
sortBy: { creado: 1 },
output: { acumulado: { $sum: "$total", window: { documents: ["unbounded", "current"] } } },
},
},
]);Comprobar
Cada pedido lleva en acumulado la suma de los pedidos de su cliente hasta él.
Problemas frecuentes
- Una ventana sobre un grupo de
partitionBymuy grande vuelca a disco conallowDiskUse.