sql >> Database >  >> NoSQL >> MongoDB

Hoe een array te filteren in een mongodb-query

Als u alleen het object binnen de StackSummaries-array wilt, moet u de $unwind . gebruiken om de array uit te breiden, de gewenste documenten te filteren en vervolgens alleen de delen van het document te projecteren die u echt wilt.

De vraag zou er ongeveer zo uitzien:

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

Handige links:



  1. Som van subdocumenten in Mongoose

  2. mongodb-service start niet op

  3. MongoDB Groepeer op veld, tel het en sorteer het desc

  4. Generatie van _id vs. ObjectId autogeneratie in MongoDB