رفتن به نوشته‌ها

دسته: MongoDB (مونگو دی‌بی)

اضافه کردن dob به نتایج در فریم‌ورک aggregation

ما در قسمت قبل موفق شدیم که داده های location (مکان) کاربر را به داده های آماده ی geoJSON تبدیل کنیم. در این قسمت می خواهیم فیلد dob را گرفته و مقادیر درون آن را به صورت فیلد های اصلی در سند نمایش بدهیم. در حال حاضر فیلد dob (مخفف date of birth – تاریخ تولد) در کالکشن اصلی به شکل زیر است: من می خواهم فیلد های date و age از درون dob بیرون بیایند و هر کدام تبدیل به فیلد مستقیم خود بشود. انجام این کار ساده است: من دو فیلد جدید به نام های birthdate (تاریخ تولد) و age (سن) را به stage اول داده ام. فیلد age که بسیار ساده است و نیازی به توضیح ندارد اما برای فیلد birthdate دوباره از convert$ استفاده کرده ایم چرا که این فیلد رشته ای است اما ما می خواهیم آن را به صورت عددی داشته باشیم. این رشته با ساختار خاص و استانداردی ذخیره شده است بنابراین می توانیم آن را بدون هیچ زحمت اضافه ای به نوع داده ی date تبدیل کنیم. اگر دوست دارید در مورد انواع داده های موجود برای convert$ مطالعه کنید، باید به صفحه ی زیر بروید: https://docs.mongodb.com/manual/reference/operator/aggregation/convert/ من برخی از این فیلد ها را برایتان لیست می کنم: double: همان عدد اعشاری است. string: رشته. objectId: نوع داده ای خاص در MongoDB که قبلا آن را در id_ دیده بودیم. bool: مقادیر Boolean که فقط true یا false می گیرند. date: نوع داده ای خاص در MongoDB که مخصوص تاریخ است و به شکل ISODate نمایش داده می شود. int: عدد صحیح و بدون اعشار. long: عدد اعشاری 64 بیتی. decimal: عدد اعشاری 128 بیتی. در مورد انواع اعداد و مسائل مربوط به آن ها در فصل های آینده صحبت خواهیم کرد. مثلا قبلا به شما گفته بودم که ما در shell کار می کنیم که به صورت پیش فرض تمام اعداد را به صورت اعداد double (اعشاری) 64 بیتی می بیند، در صورتی که این مسئله در Driver های مختلف کاملا متفاوت است و باید به documentation مربوط به Driver خودتان مراجعه کنید. این ها همه مسائلی جزئی هستند که فعلا جای بحث آن ها نیست و باید به فصل مربوطه ی خودشان تبدیل شوند.