سلام، خداقوت توسعه دهندگان عزیز :)
اکثر نرمافزار های بزرگ و کوچیک توی خودشون نیاز به کار با دیتا دارن و بعضی از این نرمافزارا نیازمند این هستن که دیتاهاشون persistent(دائمی) بشه و نمیخوان بعد از اینکه کاربر از اون نرمافزار خارج شد همه دیتاهاش بپره، اصلا جذاب نیست که وقتی وارد یه نرمافزار میشید مجدد بخواید ثبتنام یا لاگین بکنید مگه نه؟!
احتمالا اولین راهکار براتون استفاده از فایل هست که کاملا هم جوابگو هست ولی اینکه داده رو چطوری توی فایل ذخیره کنید، به چه شکل از فایل بخونید و .... کاملا به عهده خودتونه! و اصلا هم مسئولیت کمی نیست و در دراز مدت با مشکلات پرفرمنسی و هزارجور مشکل دیگه باید دست و پنجه نرم کنید پس یا مطمئن بشید که کاری که انجام میدید خیلی کوچیکه یا استفاده نکن از فایل برادر من!
اما یه راهکار دیگه هم هست که خیلی جوابه و بیشتر اونایی که نیاز به persistent کردن دیتا دارن ازش استفاده میکنن و اونم استفاده از دیتابیسه :) یکسری تیم نشستن و هزارجور مشکلی که بالا مطرح شد رو حل کردن و برامون این دیتابیس ها رو آماده کردن(دمشون گرم ?)
حالا ما یه دغدغه جدید داریم، چه دیتابیسی استفاده کنیم و اصلا چه نوع دیتابیسی به درد پروژمون میخوره؟!
توی این مطلب میخوام چندتا کار انجام بدم.
در جهان هستی دو نوع دیتابیس وجود دارد یکی SQLای ها و یکی NoSQLای ها :)
هرکدام را بهر کاری ساختند و نمیتوان گفت که یکی از دیگر برتری بسیار دارد و هرکس اینگونه گفت بدانید که متعصبی بیش نیست و فاصله اجتماعی را با وی رعایت نمایید!
دیتابیسهای SQL داده های داخلشون یه فرم خاصی دارند و فرم این دادهها از قبل مشخص شده ولی دیتابیس های NoSQL میتونن دادههایی که دارای یک شکل و شمایل یکسان نیستند رو هم ذخیره کنند.
تا به اینجای کار فهمیدیم که MongoDB یه دیتابیس NoSQL هستش، اما بریم با بقیه فیچر های این بزرگوار آشنا بشیم.
قبل از اون باید بگم که Mongo از کلمه humongous اومده که به معنی عظیم هست!
ساختار داده توی MongoDB به صورت BSON هست یعنی JSON به شکل Binrary پس شمایی که به عنوان برنامهنویس به شکل آبجکتی فکر میکنی الان باید خیلی خوشحال باشید چون دیتابیستونم همینکارو میکنه!
یه زبان کوئری خفن و تو دل برو!
db.users.find({ name: "Mohammad" }).sort({ birthDate: 1 })
به همین سادگی کاربرایی که اسمشون محمد هست(که کمم نیستن ?) رو بر اساس تاریخ تولدشون به شکل صعودی مرتب کردیم.
مونگو دیبی تمام قابلیتای دیتابیس های SQLای رو داره حتی بیشتر!
ضمنا MongoDB یه سرویس آنلاین هم داره به اسم Atlas که همونطور که احتمالا متوجه شدید یه DBaaS هست (Database As A Service) و اونم کلی قابلیت به صورت جدا گونه داره!
حالا چرا نوشتم رویایی برای توسعهدهندگان؟ آخه شما نحوه کوئری زدن رو ببین، یه دل نه، صد دل عاشقش میشی ❤️
دیگه مجبور به استفاده از دستورات گاها وحشتناک SQL هم نیستید ?
اگه تجربهای داشتید از لذت یا عذاب توی استفاده از این دیتابیس توی نظرات بگید که من و بقیه مطلع بشیم و با چشم بازتر انتخابمون رو انجام بدیم.
محمد محمدعلیان --- 12 آبان 1399