I like Mongodb

သောကြာနေ့က Backend Admin Panel ကို App တစ်ခု အတွက် ရေးဖြစ်တယ်။ Client က Email ကို ထပ်ဖြည့်ချင်တယ်။ Account တစ်ခုမှာ Email က one or more ပါမယ်။ ပုံမှန် သမာရိုးကျ MySQL သုံးမယ်ဆိုရင် ကျွန်တော် တို့ အနေနဲ့ Email field တစ်ခု ထပ်ဖြည့်ရမယ်။ Email one or more ဖြစ်တယ်ဆိုတဲ့ အတွက် ကြောင့် table ဆောက်သင့်တယ်။ မဆောက်ဘဲနဲ့ comman ကို သုံးပြီး ထားမယ်ဆိုလည်း ဖြစ်တယ်။ အနည်းဆုံးတော့ Field တစ်ခု ထပ်ဖြည့်ရမယ်။ နောက်ပြီး UI ပိုင်း ပြင်ရမယ်။ JSON API respond ပြန်တဲ့ အပိုင်းမှာ , သုံးထားရင် split လုပ်ပြီး Array ပြန်ဖို့လိုတယ်။ ဒါဟာ MySQL သုံးထားရင် ကျွန်တော် ပြန်ပြင်ရမယ့် အပိုင်းပါ။

အခု Mongodb သုံးလိုက်တဲ့ အခါမှာတော့ UI က Form မှာ Email field လည်း တစ်ခု ပိုလာတယ်။ data ကို update မလုပ်ခင်မှာ , ကို array ပြောင်းပေးလိုက်တယ်။ ဒါလေးပဲ။ ဘာဆို ဘာမှ မလိုဘူး။ JSON respond ကလည်း email field ရှိရင် ထည့်တယ်။ မရှိရင် မပါလာဘူး။ Database ပိုင်းကို ဘာမှ ထိ စရာမလိုပဲ Client ဘက်က ထပ်ဖြည့်ချင်တဲ့ Field အသစ်တွေကို လွယ်လွယ်နဲ့ လိုသလောက် ထည့်ဖြည့်နိုင်တယ်။ ဒါလေးကို တော်တော်လေး သဘောကျသွားတယ်။

နောက်တချက်က Mongodb export နဲ့ import ကို rockmongo သုံးပြီး အသုံးပြုလိုက်တာ တော်တော်လေးကို လွယ်တာ တွေ့ရတယ်။ ပထမဆုံး production အဆင့်မှာ Mongodb ကို သုံးလိုက်တာ တော်တော်လေးကို အဆင်ပြေသွားတာ တွေ့တယ်။

Mongodb ဟာ Document Base system တွေ အတွက် တော်တော်လေးကို ကောင်းတယ်။ Ornagai လိုမျိုး Search website ပိုင်းကျတော့ အဆင်မပြေတော့ဘူး။ ကျွန်တော် Ornagai ကို ရေးတုန်းက

၁။ တူတာ အရင်ပြ
၂။ စတဲ့ နေရာမှာ ပါတဲ့ စာလုံး ပြ
၃။ အလယ်မှာ ပါတဲ့ စာလုံးပြ
၄။ နောက်ဆု့းမှာ ပါတဲ့ စာလုံးပြ

အဲလို sorting စီထားတယ်။ SQL code ကိုတော့ ဒီမှာ ဖတ်ကြည့်လို့ရတယ်။

Mongodb နဲ့ဆိုရင် အဲလို စီလို့မရတော့ဘူး။ အဲလိုမျိုး result လိုချင်ရင်တော့ map reduce ဒါမှမဟုတ် client ပိုင်းကနေ ပြန်စီမှာ ရမယ်။ Map Reduce ကို ကျွန်တော် ကောင်းကောင်းနားမလည်သေးတဲ့အတွက် မသုံးတတ်သေးတာ အမှန်ပါပဲ။

Mongodb ဟာ Blgo Engine , CMS Engine လိုမျိုးအတွက် တော်တော်လေးကို အသုံးဝင်တယ်။ နောက်ပြီးတော့ Field အသစ်တွေ ဘယ်လောက် လာမယ်ဆိုတာ မသိတဲ့ ကိစ္စတွေမှာလည်း အသုံးဝင်တာကို တွေ့ရတယ်။

ကျွန်တော်ကတော့ MySQL ဖြစ်ဖြစ် Mongodb ဖြစ်ဖြစ် project ပေါ်မှာ ကြည့်ပြီး ဘယ်ဟာကို သုံးသင့်သလဲဆိုတာကိုပဲ ဆုံးဖြတ်ပြီး သုံးဖြစ်မှာပါ။

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.