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

108
Vistas
Obtenga la cuenta de un valor de un subdocumento dentro de una matriz con mangosta

Tengo Colección de documentos con dni y contacto. El contacto es una matriz que contiene subdocumentos.

imagen del documento

Estoy tratando de obtener el recuento de contactos donde isActive = Y. También necesito consultar la colección según la identificación. Toda la consulta puede ser algo como

Seleccione Count(contact.isActive=Y) donde _id = '601ad0227b25254647823713'

Estoy usando mongo y mangosta por primera vez. Edite la pregunta si no pude explicarla correctamente.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede usar una canalización de agregación como esta:

  • Primera $match para obtener solo los documentos con _id deseado.
  • Luego $unwind para obtener diferentes valores dentro de la matriz.
  • Haga coincidir nuevamente para obtener los valores cuyo valor isActive es Y .
  • Y $group agregando uno por cada documento que existe (es decir, contando documentos con isActive = Y). El recuento se almacena en total de campo.
 db.collection.aggregate([ { "$match": {"id": 1} }, { "$unwind": "$contact" }, { "$match": {"contact.isActive": "Y"} }, { "$group": { "_id": "$id", "total": {"$sum": 1} } } ])

Ejemplo aquí

over 4 years ago · Santiago Trujillo Denunciar
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