سلام خدمت دوستان و اساتید محترم .
فرض کنید من تا الان با mysql کار کردم و اینو میدونم به راحتی میتونم اینسرت و سلکت کنم و ریلیشن بزنم یا کالکت کنم اطلاعاتمو یا حتی join بزنم و.....
اگه الان بخوام همه این کار هارو با مونگو انجام بدم ایا شدنیه یا با چالش هایی مواجه میشم ؟
فرض بر اینکه من میخوام ی اپلیکیشنی بنویسم با node که باید هرکاری که میتونم تو mysql بکنم رو تو مونگو هم بتونم انجام بدم .
اگه نه پیشنهاد شما چیه .
تشکر .
@hesammousavi
@ali.bayat
@Alimotreb
و بقیه اساتید و دوستان ...
mongodb هم یک دیتابیس هست و همه کارهای یک دیتابیس که نیاز دارید (که در بالا هم گفتید) رو میتونه انجام بده .
البته خوب دستورات و زبان متفاوته پس انتظار نباید داشته باشید هر چی اونجا بود به همون شکل در مونگو هم باشه
نه برای من این مهمه که بتونه همه کارهای مختلف رو انجام بده مخصوصا ریلیشن ها و جوین ها و عملیات اصلی curd حالا میدونم دستوراتش فرق میکنه که اونم نیازمند یاد گیریه کاملشه .
سوالی که این وسط پیش میاد اینه که داستان سایت های مختلف یا حتی استارت آپ هایی که از مونگو به طور کامل استفاده نمیکنن و ازش به عنوان دیتابیس دوم استفاده میشه برای بعضی از عملیات چیه ! چون توی بعضی از بنچ مارک ها دیده میشه برای عملیات ثبت ویرایش حذف زیاد چنگی به دل نمیزنه اما برای خوندن اطلاعات عالیه !
مانگو یک دیتابیس غیرابطهای (NoSQL) هست به این معنی که شما روابط رو باید در کدتون داشته باشید و در دیتابیس چیزی به عنوان رابطه وجود نداره نه تنها این دیتابیس بلکه هر دیتابیسی که NOSQL باشه همینه
علمیات CURD رو که نشه انجام داد که اصلا دیتابیس نمیگن بهش
مونگو کلا از لحاظ ساختار و رابطه با mysql فرق داره.
توی mysql جدول داریم اما توی مونگو collection داریم.
توی mysql ردیف یا row داریم اما توی مونگو document داریم.
توی mysql قوانین join رو داریم اما توی مونگو Embedded Documents رو داریم.
مونگو بدرد ذخیره سازی اطلاعات رابطه ای نمیخوره پس اگه روابط یا relation های زیاد داری بهتره سمتش نری چون کند عمل میکنه و بازدهی رو پایین میاره.
مونگو بیشتر بدرد انباشته کردن اطلاعات برای ثبت لاگ ها میخوره. بیشتر سرعت خواندن و نوشتن داره تا پردازش روابط. اگه میخوای روابط رو پردازش کنی بهتره از کاساندرا استفاده کنی (cassandra) که یک دیتابیس بر حسب گراف (graph) هست. یا از neo4j استفاده کن.
ممنون دوستان.
اینم شنیدم مونگو transaction نداره !
یعنی اگر بخوام چند تا کوئری همزمان بزنم نمیتونم مطمئن باشم همگی بدرستی با هم ثبت شدن یا نشدن !
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟