Necesito usar la agregación de $group con condición. En el siguiente ejemplo, $group separa los documentos en grupos de acuerdo con Campaign_name y devuelve una suma de Basecount.
$group : { _id: "$Campaign_Name", Basecount: { $sum: "$Basecount" } }Aquí, tengo diferentes Campaign_name como winback, base, jca, etc. en DB. Ahora, lo que debo hacer es que si Camapign_name es Winback, en lugar de tomar la suma de Basecount, necesito tomar la suma de otro campo Actcount, es decir, en lugar de aplicar el agregador de suma en Basecount, necesito aplicarlo en un Actcount archivado.
Gracias por adelantado.
Una opción es usar $cond mientras se hace $group :
db.collection.aggregate([ { $group: { _id: "$Campaign_Name", Basecount: { $sum: { $cond: [ { $eq: [ "$Campaign_Name", "Winback" ] }, "$Actcount", "$Basecount" ] } } } } ])Vea cómo funciona en el ejemplo del patio de recreo