MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come filtrare l'array in una query mongodb

Se vuoi solo l'oggetto all'interno dell'array StackSummary, dovresti usare il $unwind clausola per espandere l'array, filtrare i documenti che desideri e quindi proiettare solo le parti del documento che desideri effettivamente.

La query sarebbe simile a questa:

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

Link utili: