در جلسه ی قبل با کلیت فریم ورک aggregation آشنا شدیم و در نهایت به کوئری زیر رسیدیم. و از شما پرسیدیم که به نظرتان خروجی این کوئری به چه شکلی خواهد بود. بدون مقدمه نتیجه ی اجرای کوئری بالا به شکل زیر است. همانطور که مشاهده می کنید ما داده های خود را کاملا مطابق با سلیقه ی خودمان تغییر داده ایم! به طوری که id برابر شیء ای شده است که ایالت/استان را نمایش می دهد و totalPersons هم تمام افراد اهل آن استان/ایالت را نمایش می دهد (تعداد سند های ادغام شده را نمایش می دهد). برای اینکه این نتیجه را تست کنیم، می توانیم از یک کوئری ساده ی Find استفاده کنیم: db.persons.find({“location.state”: “تهران”}).pretty() در اینجا گفته ام تمام افراد را پیدا کن که در آن ها استان مورد نظر «تهران» است. با اجرای این دستور تمام 6 سندی که نتیجه ی قبلی در totalPersons اعلام کرده بود، نمایش داده می شود. من یکی از آن ها را می آورم: توجه کنید که totalPersons تعداد خانم هایی را نشان می دهد که از تهران باشند اما کوئری find ما کل افرادی را نشان می دهد که از تهران باشند بنابراین به این نکته توجه داشته باشید که شاید تعداد افراد بیشتر از مقدار totalPersons باشند اما موارد اضافی همگی مرد (male) هستند. در ضمن احتمالا متوجه شده اید که داده های افراد ایرانی کمی عجیب است (ایمیل ها به فارسی است که نامعتبر محسوب می شود). ما به این مسئله کاری نداریم اما اگر کنجکاو هستید، این داده ها با استفاده از وب سایت زیر ایجاد شده اند: https://randomuser.me/ این وب سایت کاربران fake و تصادفی می سازد (مانند متون lorem ipsum اما برای کاربران مختلف) تا کسانی که می خواهند با یک پایگاه داده تمرین کنند، به راحتی به کاربران آماده دسترسی داشته باشند. به همین دلیل است که کاربران ایرانی کاملا دقیق نیستند چرا که واقعی نیستند اما برای ما مهم نیست. نکته ی اصلی این است که دستورات MongoDB ما به درستی اجرا می شوند.
پنل نویسندگان
