mongoDB এর প্রাথমিক পরিচয়

Asif Ur Rahman
4 min readJun 15, 2021

MERN Stack এর শুরুতেই যে word টি আছে সেটি হলো “M” . যার মাদ্ধমে মূলত mongoDB কেই বুঝানো হয় । আর আজকে আমি আপনাদের সাথে যে বিষয়টি নিয়ে আলোচনা করবো সেটি হলো এই mongoDB ।

mongoDB একটি ডাটাবেস সার্ভার যে সার্ভার এর মাদ্ধমে আমরা আমাদের ডাটা গুলোকে ডাটাবেস এ সংরক্ষণ করতে পারি । এটি একটি ডকুমেন্ট-ওরিয়েন্টেড noSQL Database । mongoDB ২০০৭ সালে ডুইট মেরিম্যান, এলিয়ট হরোভিটস এবং কেভিন রায়ান প্রতিষ্ঠা করেছিলেন ।

আপনারা অনেকেই mySQL ,Oracle ,microsoft CQL এর নাম শুনে থাকবেন । এদের প্রত্যেকটাই আসলে এক একটা ডাটাবেস।

১. ডাটাবেস কি ?

ডাটাবেস হচ্ছে যেখানে আমরা আমাদের ডাটা গুলোকে স্টোর করে রাখি অর্থাৎ সংরক্ষণ করে রাখি।

২.ডাটাবেস কোনো লাগে আমাদের ?

আমরা দেখতেছি দিন দিন কিভাবে ওয়েবসাইট এর ব্যবহার বেড়েই চলেছে । হোক সেটা Sngle Page Web Application অথবা কোনো Multi — Page Ecommerce Web Application ।

যেমন — amazon.com, bikroy.com , daraz.com এগুলো এক একটা Multi — Page Ecommerce Web Application । যেখানে লক্ষ্য লক্ষ্য প্রোডাক্ট এর ডাটা থাকে ।

তো এখন একটু চিন্তা করেন তো ,এই ডাটা গুলো আপনি কিভাবে রাখবেন ? কোথায় রাখবেন ?

মনে করেন আপনার একটি Ecommerce Website আছে । সেখানে প্রচুর প্রোডাক্ট এর ডাটা থাকবে । তাদের অনেক অনেক ইমেজ থাকবে । এখন এই ইমেজ গুলো আপনি যদি আপনার ওয়েবসাইট এর Main Folder এর মধ্যে Image Folder তৈরী করে তার মধ্যে রাখেন তাহলে আপনার ওয়েবসাইট অনেক ভারি হবে । যার ফলে আপনার ওয়েবসাইট এর “ Loading Time” অনেক বেড়ে যাবে । যার ফলে আপনার এই ওয়েবসাইট টি ব্যবহার কারীদের (Users) কাছে গ্রহণ যোগ্যতা হারাবে ।

আর এজন্যে শুরুতেই আপনাকে যেইটা চিন্তা করতে হবে সেটা হলো এমন একটা প্লাটফর্ম এ ডাটা গুলো রাখতে হবে যেখান থেকে আপনি ডাটা সহজেই কল করতে পারবেন স্বল্প সময়ে এবং ডাটা হারাবেনা কখনো । যেখানে আবার সিকিউরিটি এর সিস্টেম ও থাকবে । আর এইরকম একটা সিস্টেম এর নাম হচ্ছে ডাটাবেস সার্ভার যাকে আমরা ডাটাবেস সিস্টেম ও বলতে পারি । যেখানে আপনি চাইলে আপনার ইচ্ছামতো ডাটা রাখতে পারবেন । সিকিউরিটি ও মেইনটেইন করতে পারবেন যাতে unauthorized কেও ডাটা hack or ডিলিট করে না দিতে পারে ।

৩. ডাটাবেস কয়প্রকার ?

ডাটাবেস অনেক রকমের আছে । তবে প্রধানত দুই রকম এর ।

  • SQL Database :

oracle , mySQL এগুলা সব sql ডাটাবেস । sql বলতে বুঝাই Structured Query Language । এর মাধ্যমে আমরা যদি ডাটাবেস থেকে কোনো ডাটা খুঁজে বের করতে চাই তাহলে আমাদের কে কোয়েরি (query) করতে হয়। কোয়েরি মানে হলো ডাটা সার্চ করা । তবে Sql এর মাধ্যমে ডাটা সার্চ করতে হলে আমাদের কে লজিকাল কোড লিখে ডাটা সার্চ করতে হয় । আর এখানে ডাটা গুলো মূলত টেবিল আকারে সাজানো থাকে।যেমন আপনারা অনেকেই এখন Worldmeter ওয়েবসাইট সম্পর্কে জানেন। যেখান থেকে আমরা করোনা ভাইরাস এর মাধ্যমে কোন কোন দেশ কতটুকু আক্রান্ত তা জানতে পারি । এখন ধরেন আপনাকে বলা হলো Sql ব্যাবহার করে আপনাকে বাংলাদেশে কোন কোন দিন 20 জন এর বেশি মারা গেছে সেই দিন গুলো বের করতে হবে । তাহলে আপনাকে যেইটা এক্ষেত্রে করতে হবে সেটা হলো এখানে লজিকাল ওয়ে তে আপনাকে ডাটা কোয়েরি অর্থাৎ সার্চ করে বের করতে হবে।

আপনাকে শুরুতে বাংলাদেশ কে খুঁজে বের করতে হবে। তারপর ২০ জন এর বেশি মারা গেছে এমন দিন গুলোকে লজিকাল ভাবে বের করতে হবে । তো এভাবেই আমরা Sql ব্যবহার করে লজিকাল ভাবে কোনো ডাটা কে ফেচ (fetch) করতে পারি অর্থাৎ বের করতে পারি ।

  • noSQL Database :

অনেকেই এখন এইটার নাম শুনেই হয়তো বলতে পারেন এইটাতে কোনো কোয়েরি করা লাগেনা । কারণ একটু আগেই বলে আসছি যে SQL মানে হচ্ছে কোয়েরি করে ডাটা ফাইন্ড করা। কিন্তু এইটাতে যেহেতু noSQL বলা আছে তাই হয়তো query লাগবেনা ।

না । বিষয়টা ঠিক সেরকম না। ডাটা তো ডাটাবেস থেকে বের করতে আমাদেরকে কোয়েরি করাই লাগবে। কোয়েরি মানে ফাইন্ড করা। কোনো ডাটা কে ডাটাবেস থেকে খুঁজে বের করাটাই হচ্ছে কোয়েরি । এইটা সব ডাটাবেস এই আমাদেরকে করতে হবে।

শুধু এক্ষেত্রে ডাটা ফাইন্ড করার পদ্ধতি তে ভিন্নতা আছে। SQL Database যেভাবে ডাটা গুলোকে টেবিল এর মধ্যে স্টোর করে “ logical way” তে সার্চ করে, noSQL Database এই কাজ গুলো একটু ভিন্ন ভাবে করে ।

আগেই বলে আসছি যে SQL Database এ ডাটা গুলো টেবিল আকারে থাকে । কিন্তু noSQL Database এ ডাটা গুলো থাকে অবজেক্ট আকারে । যেটাকে আমরা একটা ডকুমেন্ট ও বলতে পারি।

এখন প্রশ্ন আসতে পারে এখানে যে অবজেক্ট এর কথা বলা হচ্ছে এইটা দেখতে কিরকম ? মজার ব্যাপার হচ্ছে এই অবজেক্ট হচ্ছে সেই অবজেক্ট যেইটা আমরা javascript এ দেখে আসছি । তাই noSQL Database ব্যবহার করলে আপনাকে এক্সট্রা করে কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজে জানা লাগবেনা । কারণ এখানে যে Query language টা আছে সেটা একদম জাভাস্ক্রিপ্ট এর Query language এর মতোই। জাভাস্ক্রিপ্ট পারলেই হবে । জাভাস্ক্রিপ্ট এর মাদ্ধমে যেভাবে আমরা fakedata তৈরী করে ডাটা গুলোকে ওয়েবসাইট এ ব্যবহার করি । noSQL ডাটাবেস এর structure টাও হুবুহু ঐরকমই। আপনাকে শুধুমাত্র অবজেক্ট এর ভিতর থেকেই ডাটা গুলোকে কল করতে হবে ।

হুররে, কি মজা তাইনা..!!! আপনি যদি MERN stack হতে চান তাহলে এর চেয়ে বড় আনন্দের আর কি ই বা হতে পারে বলুন..!!!

যেখানে আপনি ফ্রন্ট এন্ড এর জন্যে javascript , backend এর জন্যে ব্যবহার করেন NodeJs সেটাও javascript দিয়ে লেখা । আবার এখন ব্যবহার করবেন mongoDB যেইটাও javascript দিয়ে লেখা ।

ওয়াও, সত্যিই অসাধারণ তাইনা..!!! তাই আপনাকে MERN stack Developer হতে হলে শুধুমাত্র একটা Programming Language এ ফোকাস করতে হবে, যেইটা হলো javascript ।

আর শুধু মাত্র এই কারণেই MERN stack Developer দের মধ্যে দিন দিন mongodb এর ব্যবহার বেড়েই করেছে। বলতে গেলে ডাটাবেস সার্ভার এর মধ্যে mongoDB এখন টপ ফাইভ এর মধ্যে আছে ।

৪. এখন আসি কিভাবে ব্যবহার করবেন এই mongoDB ?

আপনি ২ ভাবে mongoDB ব্যবহার করতে পারেন -

  • MongoDb Software আপনার কম্পিউটার এ ইনস্টল করে ।
  • MongoDB Atlas ব্যবহার করে। এর মাধ্যমে আপনাকে আলাদা করে MongoDB আপনার কম্পিউটার এ ইনস্টল করা লাগবেনা ।

৫. কয়েকটি জনপ্রিয় কোম্পানি যারা MongoDB ব্যবহার করছে তাদের Database Management System এর জন্যে ।

  • Toyota
  • Sap
  • Cisco
  • Astrazeneca
  • verzion

Asif Ur Rahman

Campus Ambassador

Programming Hero

--

--

Asif Ur Rahman

Hi ! I am Asif. A full time web developer. || Web Developer at OmniGo || MERN Stack Developer