Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

226
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda