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 read sobre 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 partitionBy muy grande vuelca a disco con allowDiskUse.

Ver también