sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man filtrerar array i en mongodb-fråga

Om du bara vill ha objektet inuti StackSummaries-arrayen bör du använda $unwind för att utöka arrayen, filtrera de dokument du vill ha och projicera sedan bara de delar av dokumentet som du faktiskt vill ha.

Frågan skulle se ut ungefär så här:

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

Användbara länkar:



  1. Hur man ogiltigförklarar delar av en hierarki (träd) av data i Redis cache

  2. Uppdatera ett enda fält i MongoDB i ett enda inbäddat dokument

  3. Hur man lägger tillToSet med datumfält

  4. mongo-go-driver hitta ett dokument med _id