Estructura del documento
{ "A": "1", "B": "3", "C": "0.000090213", }, { "A": "1", "B": "3", "C": "0.000037698", }, { "A": "2", "B": "4", "C": "0.00016664", }Estoy tratando de obtener el recuento de valor para campos específicos con agregación, el resultado deseado para A y B sería
A: { "1": 2, "2": 1} B: { "3": 2, "4": 1}Cualquier ayuda es muy apreciada.
db.collection.aggregate([ { $facet: { "A": [ { $group: { _id: "$A", v: { $sum: 1 } } } ], "B": [ { $group: { _id: "$B", v: { $sum: 1 } } } ] } }, { $addFields: { A: { $map: { input: "$A", as: "a", in: { k: "$$a._id", v: "$$av" } } } } }, { $addFields: { B: { $map: { input: "$B", as: "b", in: { k: "$$b._id", v: "$$bv" } } } } }, { $project: { A: { "$arrayToObject": "$A" }, B: { "$arrayToObject": "$B" } } } ])Explicado: