Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

225
Vistas
Mongodb Group y Count Where Column is Status

Estoy tratando de ejecutar una consulta mongo para agrupar todos mis registros por estado. Entonces quiero obtener un recuento por estado. Me las arreglé para hacer esto con una consulta de $group pero ahora me gustaría ir un paso más allá y hacer que el nombre de la propiedad refleje el estado y el valor sea igual al recuento. ¿Hay alguna manera de que pueda lograr esto?

Editar: Esto es diferente de la pregunta que se marcó como duplicada. Todavía necesito agruparla por estado y no puedo agruparla por estado y obtener una suma de estado en el mismo grupo. Las preguntas duplicadas se agrupan por nombre y obtienen una suma de registros basada en el título, que es una suma de un documento incrustado, no una suma de todos los documentos. El estado no está incrustado, es una propiedad única por documento.

Consulta Mongo:

 db.getCollection('winapplications').aggregate([ { $match: { 'WINNbr': { '$exists': true, '$ne': '' } } }, { $match: {"Status":{"$ne":"Approved"}}}, { $match: {"Status":{"$ne":""}}}, { $match: {"Status":{"$ne":null}}}, { $group: { _id: "$Status", count:{$sum:1} } } ])

Resultado:

 { "_id" : "Hold", "count" : 1.0 } { "_id" : "Pending", "count" : 235.0 } { "_id" : "Not Approved", "count" : 4199.0 } { "_id" : "Active", "count" : 1923.0 } { "_id" : "Closed", "count" : 20189.0 }

Lo que me gustaría:

 { "Hold" : 1 "Pending" : 235 "Not Approved" : 4199 "Active" : 1923 "Closed" : 20189, }

El resultado que obtengo cuando hago lo que dice la pregunta duplicada no es el resultado que estoy pidiendo:

 /* 1 */ { "_id" : "Hold", "Active" : 0.0, "Closed" : 0.0, "Pending" : 0.0, "Hold" : 1.0, "Not Approved" : 0.0 } /* 2 */ { "_id" : "Pending", "Active" : 0.0, "Closed" : 0.0, "Pending" : 235.0, "Hold" : 0.0, "Not Approved" : 0.0 } /* 3 */ { "_id" : "Not Approved", "Active" : 0.0, "Closed" : 0.0, "Pending" : 0.0, "Hold" : 0.0, "Not Approved" : 4199.0 } /* 4 */ { "_id" : "Active", "Active" : 1923.0, "Closed" : 0.0, "Pending" : 0.0, "Hold" : 0.0, "Not Approved" : 0.0 } /* 5 */ { "_id" : "Closed", "Active" : 0.0, "Closed" : 20189.0, "Pending" : 0.0, "Hold" : 0.0, "Not Approved" : 0.0 }
over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda