دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۵
  • فروردین

جلسه ۱۸ : توابع جمعی در MongoDB

  • دسته‌بندی‌ها :
جلسه ۱۸ : توابع جمعی در MongoDB
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ،در این جلسه از آموزش های دوره MongoDB  با مبحث توابع جمعی در MongoDB و مفهوم Pipeline در MongoDB آشنا می شوید.برای توابع جمعی در MongoDB باید از متد ()aggregate استفاده کنید.

      توابع جمعی در MongoDB

      عملگرهای جمعی، رکوردهای اطلاعات را پردازش می‌کنند و نتیجه‌های محاسبه شده را برمی‌گردانند.
      در sql، دستور (*)count همراه Group by معادل یک تابع جمعی در MongoDB است.

      متد ()aggregate

      سینتکس پایه برای این متد به شکل زیر است :

      مثال : 

      مثال
      در این مجموعه شما داده های زیر را دارید.

      مثال : 

      اکنون اگر بخواهید از مجموعه‌ی بالا لیستی از تعداد دوره‌های نوشته شده توسط هر کاربر را نمایش دهید و استخراج کنید، باید ار متد ()aggregate به صورت زیر استفاده کنید :

      مثال : 

      معادل کوئری بالا در sql به این شکل خواهد بود: (*)select by_user, count 

      در مثال بالا، سندهای گروه بندی شده‌ توسط فیلد by_user را داریم و در هر اجرای by_user مقدار قبلی جمع کلی افزایش می‌یابد.

      در اینجا لیست عبارت‌های جمعی موجود، آمده است.

      عبارت

      توضیحات

      مثال

      $sumمقدار تعیین شده همه سندهای مجموعه را جمع می‌کند.
      مثال : 

       
      $avgمیانگین همه مقادیر بدست آمده از سندهای مجموعه را محاسبه می‌کند.
      مثال : 

       
      $minکمترین مقادیر را از همه سندهای مجموعه، بر می‌گرداند.
      مثال : 

       
      $maxبیشترین مقادیر را از همه سندهای مجموعه، بر می‌گرداند.
      مثال : 

       
      $pushمقدار را در سند نتیجه، در یک آرایه درج می‌کند.
      مثال : 

       
      $addToSetیک مقدار را در سند نتیجه در یک آرایه درج می‌کند، با این تفاوت که مقدار تکراری ایجاد نمی‌کند.
      مثال : 

       
       $firstاولین سند از اسناد را طبق گروه بندی باز می‌گرداند.این عبارت بعد از عبارت‌های مرتب سازی مرحله‌ای استفاده می‌شود.
      مثال : 

       
      $lastآخرین سند از اسناد را طبق گروه بندی باز می‌گرداند.این عبارت بعد از عبارت‌های مرتب سازی مرحله‌ای استفاده می‌شود.
      مثال : 

       

      مفهوم Pipeline در MongoDB

      در Command shell یونیکس، خط لوله (Pipeline) به معنی امکان اجرای یک عملیات روی چندین ورودی و استفاده از خروجی بعنوان ورودی برای دستور بعدی و ادامه‌ی آن است. MongoDB نیز pipeline در MongoDB را در چارچوب توابع جمعی پشتیبانی می‌کند.
      یک مجموعه از مراحل وجود دارند که هرکدام از آنها یک مجموعه از اسناد را بعنوان ورودی می‌گیرند و یک مجموعه از سند را بعنوان نتیجه (یا نتیجه را بعنوان سند JSON در پایان خط لوله) ارائه می‌دهند. این عمل به نوبه خود می‌تواند برای مرحله بعد و یا مراحل بعدی، استفاده شود.
      مراحل ممکن در چارچوب توابع جمعی در زیر آمده اند:
      • $project : برای انتخاب چندین فیلد از یک مجموعه استفاده می‌شود.
      • $match : این یک عملگر فیلترگذاری است که می‌تواند میزان اسنادی را که بعنوان ورودی در مرحله بعد گرفته می‌شوند، کاهش دهد.
      • $group : این همان تابع جمعی است که در بالا توضیح داده شد.
      • $skip : توسط این عبارت، در یک لیست بدست آمده (نتیجه)، می‌توانید از لیست اسناد بصورت روبه جلو صرفنظر کنید.
      • $limit : این عبارت تعداد اسناد را توسط عدد گرفته شده، از موقعیت فعلی برای نمایش محدود می‌کند.
      • $unwind : این عبارت برای باز کردن (unwind) سندی که از آرایه‌ها بهره گیری می‌کند استفاده می‌شود. وقتی از آرایه استفاده می‌کنید، داده از نوع پیش پیوست (Pre-joined) است و با این نوع داده، این عمل برای داشتن سندهای اختصاصی نا تمام خواهد ماند. بنابراین با این مرحله می‌توانید میزان اسناد را برای مرحله بعد افزایش دهید.

      کلام آخر

      به طور کلی عملیات جمعی مقادیر چندین سند را باهم گروه بندی می‌کند و می‌تواند یک نوع از عملگرها را روی اطلاعات دسته بندی شده انجام دهد تا یک نتیجه‌ی واحد را برگرداند.

      QR:  جلسه ۱۸ : توابع جمعی در MongoDB
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر