MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como filtrar array em uma consulta mongodb


Se você quiser apenas o objeto dentro do array StackSummaries, você deve usar o $unwind cláusula para expandir a matriz, filtrar os documentos desejados e projetar apenas as partes do documento que você realmente deseja.

A consulta ficaria mais ou menos assim:
db.cf_list_stacks.aggregate([
    { '$unwind' : '$StackSummaries' },
    { '$match' : { 'StackSummaries.StackStatus' : 'CREATE_COMPLETE' } },
    { '$project' : { 
         'TemplateDescription' : '$StackSummaries.TemplateDescription',
         'StackStatusReason' : '$StackSummaries.StackStatusReason',
         ...
    } }
])

Links Úteis: