sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo filtrar una matriz en una consulta mongodb

Si solo desea el objeto dentro de la matriz StackSummaries, debe usar $unwind cláusula para expandir la matriz, filtrar los documentos que desea y luego proyectar solo las partes del documento que realmente desea.

La consulta se vería así:

db.cf_list_stacks.aggregate([
    { '$unwind' : '$StackSummaries' },
    { '$match' : { 'StackSummaries.StackStatus' : 'CREATE_COMPLETE' } },
    { '$project' : { 
         'TemplateDescription' : '$StackSummaries.TemplateDescription',
         'StackStatusReason' : '$StackSummaries.StackStatusReason',
         ...
    } }
])

Enlaces útiles: