Tengo Colección de documentos con dni y contacto. El contacto es una matriz que contiene subdocumentos.
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.
Puede usar una canalización de agregación como esta:
$match para obtener solo los documentos con _id deseado.$unwind para obtener diferentes valores dentro de la matriz.isActive es 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í