تا به حال تمام کوئری های خود برای دریافت داده را با متد های find و findOne می نوشتیم اما برخی اوقات دریافت داده ها باید آنقدر شخصی سازی شود و اینقدر جزئی یا با تفاسیر خاص باشد که متد های Find و findOne به درد ما نمی خورند. در اینجاست که فریم ورک aggregation وارد کار می شود و به ما اجازه می دهد که داده ها را دقیقا به شکل مورد نظر خودمان دریافت کنیم. به زبان ساده شما می توانید فریم ورک aggregation را یک حالت پیشرفته تر از find بدانید. این فریم ورک مسیر خاصی را برای داده های دریافت شده از کالکشن شما تعریف می کند و داده ها در هر مرحله از این مسیر دچار تغییر می شوند. هر مرحله، داده های تغییر یافته از مرحله ی قبل را دریافت می کند بنابراین می توانیم مراحل تکراری نیز داشته باشیم. مثلا داده ها را با match$ از کالکشن دریافت کنیم و سپس دوباره match$ را روی آن ها صدا بزنیم تا دوباره آن ها را فیلتر کنیم. برای شروع این جلسه از یک پایگاه داده ی آماده ای استفاده می کنیم که قبلا هم برایتان قرار داده بودم و از آن استفاده کرده بودیم. اگر آن را ندارید، می توانید دوباره از لینک زیر دانلودش کنید: دانلود پایگاه داده آماده پس از دانلود، یک ترمینال را در همان مسیر باز کرده و دستور زیر را در آن اجرا کنید: mongoimport persons.json -d analytics -c persons –jsonArray با اجرای این دستور 5000 سند به کالکشن persons در پایگاه داده ی analytics اضافه می شود. حالا وارد این پایگاه داده می شویم:
پنل نویسندگان
