Estoy teniendo problemas para obtener el resultado deseado como este
[ { "status": "ONBOARD" "count": 1 }, { "status": "PENDING" "count": 1 }, ]
me sale asi:
[ { "_id": { "status": "ONBOARD" }, "count": 1 }, { "_id": { "status": "CLIENT_ROUND" }, "count": 2 }, { "_id": { "status": "SCREENED" }, "count": 1 } ]
aquí está mi agregado:
const result = await Lead.aggregate([ { $group: { _id: { status: '$status' }, count: { $sum: 1 } } $project: { _id: 0, status: 1, count: 1 } }
Ayúdame a obtener el resultado Soy nuevo, apliqué $ proyecto pero me da error
Ya casi estás ahí. Con status: "$_id.status"
en la etapa de proyección.
db.collection.aggregate([ { $group: { _id: { status: "$status" }, count: { $sum: 1 } } }, { $project: { _id: 0, status: "$_id.status", count: 1 } } ])
Ejemplo de parque infantil de Mongo
O simplemente $group
con _id: "$status"
.
db.collection.aggregate([ { $group: { _id: "$status", count: { $sum: 1 } } }, { $project: { _id: 0, status: "$_id", count: 1 } } ])