مانگو دی بی (mongodb) یک دیتابیس nosql است که بر اساس یک data model به ما اجازه می دهد تا یک ساختار درختی برای روابط داده ها بسازیم. بر خلاف دیتابیس های sql مثل mysql که داده ها ساختار جدولی داشتند، در مانگو داده ها به شکل یک document جیسون (json) مانند هستند که میتوانیم برای آن ها schema هم تعریف کنیم. همانند جیسون، document ها هم ساختار key-value دارند. نمونه ای از یک document مانگو رو در ادامه مشاهده می کنید.
دیتابیس های nosql (مثل مانگو) با دیتابیس های sql (مثل mysql) تقریبا مفاهیم مشابه ای دارند ولی با اصطلاحات متفاوت که در ادامه توضیح میدم.
یک کالکشن مجموعه ای از document هاست. معادل آن در دیتابیس های RDBMS یا همان رابطه ای جدول است. کالکشن ها لازم نیست ساختار (schema) مشخصی داشته باشند (بر خلاف جدول در دیتابیس های رابطه ای که باید ستون های آن را تعریف کنیم و داده ها باید یک ساختار مشخص داشته باشند).
سند مجموعه ای از key-value هاست که داده های خود را در آن ذخیره می کنیم (مانند عکس بالا). سند ها ساحتار داینامیک دارند یعنی لازم نیس سند های داخل یک کالکشن ساختار یکسانی داشته باشند. معادل سند در دیتابیس های رابطه ای Row است.
در عکس زیر اصطلاحات معادل دیتابیس های رابطه ای و غیر رابطه ای را می بینید.
در مانگو دی بی فیلد id_ به عنوان کلید اصلی (primary key) برای هر سند در نظر گرفته می شود، میتوان این آی دی را دستی مقدار دهی کرد و در عیر این صورت مقداری رندوم و یونیک توسط خود مانگو به آن داده می شود. مقداری که خود مانگو در نظر می گیرد از جنس ObjectID است و 12 بیتی است، 4 بیت اول آن timestamp است، 3 بیت بعدی شناسه ماشین، 2 بیت بعدی شناسه سرور مانگو و 3 بیت آخر یک عدد incremental است.
قسمت بعدی به زودی منتشر میشه.
کانال یوتیوب من:
https://www.youtube.com/channel/UC_FNvEg2hnl0kiceK3SaUYA
گیتهاب من: