MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So filtern Sie ein Array in einer Mongodb-Abfrage

Wenn Sie das Objekt nur innerhalb des StackSummaries-Arrays haben möchten, sollten Sie den $unwind verwenden -Klausel, um das Array zu erweitern, die gewünschten Dokumente zu filtern und dann nur die tatsächlich gewünschten Teile des Dokuments zu projizieren.

Die Abfrage würde in etwa so aussehen:

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

Nützliche Links: