es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo agregar un campo en la consulta de mongoDB que represente una figura total.

Tengo una consulta de mongodb:

[  
    {$group: { 
        _id: '$status',
        count: {$sum: NumberInt(1)}
    }}
]

La consulta devuelve el siguiente resultado:

[
    { _id: "A", count: 22 },
    { _id: "B", count: 33 },
    { _id: "C", count: 44 }
]

Basado en lo anterior, necesito agregar un nuevo campo “totalCount” (por ejemplo, 22 + 33 + 44 = 99) como se muestra a continuación:

[
    { _id: "A", count: 22, totalCount: 99 },
    { _id: "B", count: 33, totalCount: 99 },
    { _id: "C", count: 44, totalCount: 99 }
]

Se agradece cualquier ayuda o pista.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para agregar un nuevo campo ‘totalCount’ al resultado de la consulta existente, podemos utilizar de nuevo la función de agregación $group de MongoDB junto con el operador $sum para calcular el conteo total. Aquí está la consulta actualizada:

    [
        {
            $group: {
                _id: '$status',
                count: { $sum: NumberInt(1) },
                totalCount: { $sum: '$count' }
            }
        }
    ]
    

    Esto devolverá el resultado siguiente:

    [
        { _id: "A", count: 22, totalCount: 99 },
        { _id: "B", count: 33, totalCount: 99 },
        { _id: "C", count: 44, totalCount: 99 }
    ]
    

    Aquí hemos agregado un nuevo campo ‘totalCount’ en la etapa $group y utilizado el operador $sum para sumar los valores ‘count’ de todos los documentos agrupados por el mismo status.

Comments are closed.