sql >> Databáze >  >> NoSQL >> MongoDB

Jak filtrovat pole v dotazu mongodb

Pokud chcete objekt pouze v poli StackSummaries, měli byste použít $unwind klauzule pro rozšíření pole, filtrování požadovaných dokumentů a promítání pouze těch částí dokumentu, které skutečně chcete.

Dotaz by vypadal nějak takto:

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

Užitečné odkazy:



  1. Zkontrolujte, zda dokument existuje v mongodb pomocí es7 async/await

  2. Důsledky použití $unwind na vnořených polích?

  3. Špatná vzdálenost v geonear metodě s Doctrine MongoDB ODM

  4. MongoDB odlišná agregace