মঙ্গোডিবি হলো একটি ওপেন-সোর্স, ডকুমেন্ট-ভিত্তিক NoSQL ডাটাবেস যা JSON-এর মতো ডকুমেন্টে ডেটা সংরক্ষণ করে। এটি রিলেশনাল ডাটাবেস থেকে ভিন্ন, কারণ এতে স্কিমালেস (schema-less) বা ডাইনামিক স্কিমা সমর্থন করে, যার মানে হচ্ছে ডেটা স্টোরেজের জন্য নির্দিষ্ট কোনো টেবিল বা কলাম কাঠামো থাকতে হয় না। MongoDB উচ্চ গতির ডেটা সংরক্ষণ ও অনুসন্ধানের জন্য ডেভেলপারদের মধ্যে খুবই জনপ্রিয়। এটি horizontal scaling এবং বড় আকারের ডিস্ট্রিবিউটেড ডেটাবেস ব্যবস্থাপনার জন্য ব্যবহৃত হয়।
MongoDB হল একটি NoSQL ডকুমেন্ট-ভিত্তিক ডেটাবেস, যা JSON-এর মতো BSON (Binary JSON) ফরম্যাটে ডেটা সংরক্ষণ করে। এটি রিলেশনাল ডেটাবেসের মতো টেবিল এবং রো-ভিত্তিক নয়, বরং ডকুমেন্ট ও কালেকশন-ভিত্তিক একটি ডেটাবেস মডেল। MongoDB মূলত দ্রুতগতির ডেটা সংরক্ষণ, স্কেলেবিলিটি এবং ডিস্ট্রিবিউটেড ডেটা ম্যানেজমেন্টের জন্য ডিজাইন করা হয়েছে।
MongoDB এর অন্যতম বৈশিষ্ট্য হল এর Flexibility। এখানে ডেটা সংরক্ষণ করতে স্কিমা প্রয়োজন হয় না, অর্থাৎ আপনি ইচ্ছামত ডকুমেন্ট তৈরি করতে পারেন এবং পরে তা পরিবর্তন করতে পারেন। MongoDB বিভিন্ন ধরনের অ্যাপ্লিকেশনের জন্য উপযুক্ত, যেমন Big Data বা Real-time Analytics।
MongoDB বিভিন্ন অপারেটিং সিস্টেমে ইনস্টল করা যায়। নিচে Linux (Ubuntu), Windows, এবং Mac এ MongoDB ইনস্টল করার ধাপগুলো দেওয়া হল:
sudo apt update
sudo apt install -y gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt update
sudo apt install -y mongodb-org
sudo systemctl start mongod
sudo systemctl enable mongod
mongod কমান্ডটি ব্যবহার করুন।brew tap mongodb/brew
brew install mongodb-community@4.4
MongoDB সার্ভার চালানোর জন্য:
brew services start mongodb/brew/mongodb-community
MongoDB ইনস্টল করার পরে, আপনি MongoDB Shell (mongo) ব্যবহার করে MongoDB পরিচালনা করতে পারেন। MongoDB Shell আপনাকে ডাটাবেস ম্যানেজমেন্ট এবং কুয়েরি চালাতে সাহায্য করে।
MongoDB সার্ভার চালু করার পরে, MongoDB Shell এ লগইন করতে পারেন নিচের কমান্ডটি ব্যবহার করে:
mongo
MongoDB তে একটি নতুন ডাটাবেস তৈরি করতে হলে, use কমান্ড ব্যবহার করতে হয়:
use my_database
MongoDB-তে একটি ডাটাবেসের মধ্যে Collection নামে ডকুমেন্ট স্টোর করা হয়। একটি নতুন কালেকশন তৈরি করতে হলে, নিচের কমান্ডটি ব্যবহার করুন:
db.createCollection("students")
MongoDB তে একটি ডকুমেন্ট ইনসার্ট করার জন্য insertOne() ফাংশন ব্যবহার করতে পারেন:
db.students.insertOne({
"name": "John Doe",
"age": 25,
"email": "john@example.com"
})
MongoDB তে ডেটা রিট্রিভ করতে find() ফাংশন ব্যবহার করা হয়:
db.students.find()
উপরের কুয়েরিটি students কালেকশন থেকে সমস্ত ডকুমেন্ট রিটার্ন করবে।
MongoDB একটি ডকুমেন্ট-ভিত্তিক ডেটাবেস, যেখানে ডকুমেন্টগুলো JSON ফরম্যাটে থাকে। MongoDB তে স্কিমালেস ডেটা মডেল সমর্থিত, অর্থাৎ প্রতিটি ডকুমেন্টে ভিন্ন ভিন্ন ফিল্ড থাকতে পারে।
{
"_id": ObjectId("60dbf830936d1bba286b2c4f"),
"name": "Alice",
"age": 30,
"skills": ["Java", "Python", "MongoDB"]
}
MongoDB তে ডকুমেন্টগুলো Collection এ সংরক্ষিত হয়, যা রিলেশনাল ডেটাবেসের টেবিলের মতো।
MongoDB দুটি প্রধান স্টোরেজ ইঞ্জিন সমর্থন করে:
MongoDB এর স্টোরেজ ইঞ্জিন পরিবর্তন করতে নিচের মত করে mongod.conf ফাইলে কনফিগার করতে হয়:
storage:
engine: wiredTiger
MongoDB এর Aggregation Framework ব্যবহার করে ডেটা প্রক্রিয়াকরণ করা যায়। এটি MapReduce এর মতো কাজ করে এবং বড় ডেটাবেস থেকে ডেটা প্রক্রিয়াকরণ ও বিশ্লেষণ করার জন্য উপযুক্ত।
db.orders.aggregate([
{ $match: { status: "completed" } },
{ $group: { _id: "$customerId", total: { $sum: "$amount" } } }
])
উপরের উদাহরণে, আমরা orders কালেকশন থেকে সম্পূর্ণ অর্ডারগুলোকে গ্রুপ করে প্রতিটি কাস্টমারের মোট অর্ডার পরিমাণ বের করেছি।
MongoDB তে Replica Set ব্যবহার করে ডেটাবেস রেপ্লিকেশন করা যায়। এটি মূলত একটি ডিস্ট্রিবিউটেড ডেটাবেস যেখানে একাধিক নোড একই ডেটার কপি রাখে।
MongoDB তে Primary এবং Secondary নোড থাকে। Primary নোডে ডেটা রাইট করা হয় এবং Secondary নোডগুলি ডেটা রিড করে।
MongoDB তে একটি Replica Set তৈরি করতে, mongod ইনস্ট্যান্সগুলোকে নিচের মতো কনফিগার করতে হবে:
mongod --replSet "rs0"
এর পরে, MongoDB Shell এ লগইন করে rs.initiate() কমান্ড দিয়ে Replica Set শুরু করতে হবে:
rs.initiate()
| বৈশিষ্ট্য | MongoDB | রিলেশনাল ডাটাবেস (যেমন: MySQL, PostgreSQL) |
|---|---|---|
| ডেটা মডেল | ডকুমেন্ট ভিত্তিক (JSON, BSON) | টেবিল ভিত্তিক (রিলেশনাল টেবিল) |
| স্কিমা | স্কিমালেস, ডাইনামিক স্কিমা | ফিক্সড স্কিমা |
| ট্রানজ্যাকশন সমর্থন | সীমিত (মাল্টি-ডকুমেন্ট ট্রানজ্যাকশন) | ACID ট্রানজ্যাকশন |
| স্কেলেবিলিটি | Horizontal scaling (শার্ডিং) | সাধারণত Vertical scaling |
| ব্যবহারক্ষেত্র | বিগ ডেটা, ওয়েব অ্যাপ্লিকেশন, রিয়েল-টাইম অ্যানালিটিক্স | ব্যাংকিং, ফাইন্যান্স, জটিল ট্রানজ্যাকশন প্রয়োজন |
| বৈশিষ্ট্য | MongoDB | Redis |
|---|---|---|
| ডেটা মডেল | ডকুমেন্ট ভিত্তিক (JSON/BSON) | কী-ভ্যালু, লিস্ট, সেট, হ্যাশ, স্ট্রিং ইত্যাদি |
| স্থায়ীত্ব | হ্যাঁ, ডেটা ডিস্কে সংরক্ষণ করে | হ্যাঁ, তবে ইন-মেমরি ভিত্তিক |
| ইন্ডেক্সিং | সমর্থন করে | সমর্থন করে না (তবে দ্রুত অ্যাক্সেসে সক্ষম) |
| ব্যবহারক্ষেত্র | ডেটা স্টোরেজ এবং অ্যাপ্লিকেশন ডেটা মডেলিং | ইন-মেমরি ক্যাশিং, রিয়েল-টাইম ডেটা প্রসেসিং |
MongoDB হলো একটি অত্যন্ত শক্তিশালী এবং স্কেলেবল NoSQL ডাটাবেস, যা আধুনিক ওয়েব অ্যাপ্লিকেশন, বিগ ডেটা প্রসেসিং, এবং রিয়েল-টাইম ডেটা অ্যাপ্লিকেশনের জন্য আদর্শ। এর ডকুমেন্ট ভিত্তিক ডেটা মডেল, স্কিমালেস স্ট্রাকচার, এবং horizontal scaling এর ক্ষমতা একে ডেভেলপারদের কাছে জনপ্রিয় করেছে। যদিও এটি রিলেশনাল ডাটাবেসের মতো জটিল ট্রানজ্যাকশন এবং রিলেশনশিপ ব্যবস্থাপনা সমর্থন করে না, MongoDB তবুও উচ্চ পারফরম্যান্স, নমনীয়তা, এবং স্কেলেবিলিটির জন্য NoSQL ডাটাবেস হিসেবে বিশেষভাবে ব্যবহৃত হয়।
মঙ্গোডিবি হলো একটি ওপেন-সোর্স, ডকুমেন্ট-ভিত্তিক NoSQL ডাটাবেস যা JSON-এর মতো ডকুমেন্টে ডেটা সংরক্ষণ করে। এটি রিলেশনাল ডাটাবেস থেকে ভিন্ন, কারণ এতে স্কিমালেস (schema-less) বা ডাইনামিক স্কিমা সমর্থন করে, যার মানে হচ্ছে ডেটা স্টোরেজের জন্য নির্দিষ্ট কোনো টেবিল বা কলাম কাঠামো থাকতে হয় না। MongoDB উচ্চ গতির ডেটা সংরক্ষণ ও অনুসন্ধানের জন্য ডেভেলপারদের মধ্যে খুবই জনপ্রিয়। এটি horizontal scaling এবং বড় আকারের ডিস্ট্রিবিউটেড ডেটাবেস ব্যবস্থাপনার জন্য ব্যবহৃত হয়।
MongoDB হল একটি NoSQL ডকুমেন্ট-ভিত্তিক ডেটাবেস, যা JSON-এর মতো BSON (Binary JSON) ফরম্যাটে ডেটা সংরক্ষণ করে। এটি রিলেশনাল ডেটাবেসের মতো টেবিল এবং রো-ভিত্তিক নয়, বরং ডকুমেন্ট ও কালেকশন-ভিত্তিক একটি ডেটাবেস মডেল। MongoDB মূলত দ্রুতগতির ডেটা সংরক্ষণ, স্কেলেবিলিটি এবং ডিস্ট্রিবিউটেড ডেটা ম্যানেজমেন্টের জন্য ডিজাইন করা হয়েছে।
MongoDB এর অন্যতম বৈশিষ্ট্য হল এর Flexibility। এখানে ডেটা সংরক্ষণ করতে স্কিমা প্রয়োজন হয় না, অর্থাৎ আপনি ইচ্ছামত ডকুমেন্ট তৈরি করতে পারেন এবং পরে তা পরিবর্তন করতে পারেন। MongoDB বিভিন্ন ধরনের অ্যাপ্লিকেশনের জন্য উপযুক্ত, যেমন Big Data বা Real-time Analytics।
MongoDB বিভিন্ন অপারেটিং সিস্টেমে ইনস্টল করা যায়। নিচে Linux (Ubuntu), Windows, এবং Mac এ MongoDB ইনস্টল করার ধাপগুলো দেওয়া হল:
sudo apt update
sudo apt install -y gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt update
sudo apt install -y mongodb-org
sudo systemctl start mongod
sudo systemctl enable mongod
mongod কমান্ডটি ব্যবহার করুন।brew tap mongodb/brew
brew install mongodb-community@4.4
MongoDB সার্ভার চালানোর জন্য:
brew services start mongodb/brew/mongodb-community
MongoDB ইনস্টল করার পরে, আপনি MongoDB Shell (mongo) ব্যবহার করে MongoDB পরিচালনা করতে পারেন। MongoDB Shell আপনাকে ডাটাবেস ম্যানেজমেন্ট এবং কুয়েরি চালাতে সাহায্য করে।
MongoDB সার্ভার চালু করার পরে, MongoDB Shell এ লগইন করতে পারেন নিচের কমান্ডটি ব্যবহার করে:
mongo
MongoDB তে একটি নতুন ডাটাবেস তৈরি করতে হলে, use কমান্ড ব্যবহার করতে হয়:
use my_database
MongoDB-তে একটি ডাটাবেসের মধ্যে Collection নামে ডকুমেন্ট স্টোর করা হয়। একটি নতুন কালেকশন তৈরি করতে হলে, নিচের কমান্ডটি ব্যবহার করুন:
db.createCollection("students")
MongoDB তে একটি ডকুমেন্ট ইনসার্ট করার জন্য insertOne() ফাংশন ব্যবহার করতে পারেন:
db.students.insertOne({
"name": "John Doe",
"age": 25,
"email": "john@example.com"
})
MongoDB তে ডেটা রিট্রিভ করতে find() ফাংশন ব্যবহার করা হয়:
db.students.find()
উপরের কুয়েরিটি students কালেকশন থেকে সমস্ত ডকুমেন্ট রিটার্ন করবে।
MongoDB একটি ডকুমেন্ট-ভিত্তিক ডেটাবেস, যেখানে ডকুমেন্টগুলো JSON ফরম্যাটে থাকে। MongoDB তে স্কিমালেস ডেটা মডেল সমর্থিত, অর্থাৎ প্রতিটি ডকুমেন্টে ভিন্ন ভিন্ন ফিল্ড থাকতে পারে।
{
"_id": ObjectId("60dbf830936d1bba286b2c4f"),
"name": "Alice",
"age": 30,
"skills": ["Java", "Python", "MongoDB"]
}
MongoDB তে ডকুমেন্টগুলো Collection এ সংরক্ষিত হয়, যা রিলেশনাল ডেটাবেসের টেবিলের মতো।
MongoDB দুটি প্রধান স্টোরেজ ইঞ্জিন সমর্থন করে:
MongoDB এর স্টোরেজ ইঞ্জিন পরিবর্তন করতে নিচের মত করে mongod.conf ফাইলে কনফিগার করতে হয়:
storage:
engine: wiredTiger
MongoDB এর Aggregation Framework ব্যবহার করে ডেটা প্রক্রিয়াকরণ করা যায়। এটি MapReduce এর মতো কাজ করে এবং বড় ডেটাবেস থেকে ডেটা প্রক্রিয়াকরণ ও বিশ্লেষণ করার জন্য উপযুক্ত।
db.orders.aggregate([
{ $match: { status: "completed" } },
{ $group: { _id: "$customerId", total: { $sum: "$amount" } } }
])
উপরের উদাহরণে, আমরা orders কালেকশন থেকে সম্পূর্ণ অর্ডারগুলোকে গ্রুপ করে প্রতিটি কাস্টমারের মোট অর্ডার পরিমাণ বের করেছি।
MongoDB তে Replica Set ব্যবহার করে ডেটাবেস রেপ্লিকেশন করা যায়। এটি মূলত একটি ডিস্ট্রিবিউটেড ডেটাবেস যেখানে একাধিক নোড একই ডেটার কপি রাখে।
MongoDB তে Primary এবং Secondary নোড থাকে। Primary নোডে ডেটা রাইট করা হয় এবং Secondary নোডগুলি ডেটা রিড করে।
MongoDB তে একটি Replica Set তৈরি করতে, mongod ইনস্ট্যান্সগুলোকে নিচের মতো কনফিগার করতে হবে:
mongod --replSet "rs0"
এর পরে, MongoDB Shell এ লগইন করে rs.initiate() কমান্ড দিয়ে Replica Set শুরু করতে হবে:
rs.initiate()
| বৈশিষ্ট্য | MongoDB | রিলেশনাল ডাটাবেস (যেমন: MySQL, PostgreSQL) |
|---|---|---|
| ডেটা মডেল | ডকুমেন্ট ভিত্তিক (JSON, BSON) | টেবিল ভিত্তিক (রিলেশনাল টেবিল) |
| স্কিমা | স্কিমালেস, ডাইনামিক স্কিমা | ফিক্সড স্কিমা |
| ট্রানজ্যাকশন সমর্থন | সীমিত (মাল্টি-ডকুমেন্ট ট্রানজ্যাকশন) | ACID ট্রানজ্যাকশন |
| স্কেলেবিলিটি | Horizontal scaling (শার্ডিং) | সাধারণত Vertical scaling |
| ব্যবহারক্ষেত্র | বিগ ডেটা, ওয়েব অ্যাপ্লিকেশন, রিয়েল-টাইম অ্যানালিটিক্স | ব্যাংকিং, ফাইন্যান্স, জটিল ট্রানজ্যাকশন প্রয়োজন |
| বৈশিষ্ট্য | MongoDB | Redis |
|---|---|---|
| ডেটা মডেল | ডকুমেন্ট ভিত্তিক (JSON/BSON) | কী-ভ্যালু, লিস্ট, সেট, হ্যাশ, স্ট্রিং ইত্যাদি |
| স্থায়ীত্ব | হ্যাঁ, ডেটা ডিস্কে সংরক্ষণ করে | হ্যাঁ, তবে ইন-মেমরি ভিত্তিক |
| ইন্ডেক্সিং | সমর্থন করে | সমর্থন করে না (তবে দ্রুত অ্যাক্সেসে সক্ষম) |
| ব্যবহারক্ষেত্র | ডেটা স্টোরেজ এবং অ্যাপ্লিকেশন ডেটা মডেলিং | ইন-মেমরি ক্যাশিং, রিয়েল-টাইম ডেটা প্রসেসিং |
MongoDB হলো একটি অত্যন্ত শক্তিশালী এবং স্কেলেবল NoSQL ডাটাবেস, যা আধুনিক ওয়েব অ্যাপ্লিকেশন, বিগ ডেটা প্রসেসিং, এবং রিয়েল-টাইম ডেটা অ্যাপ্লিকেশনের জন্য আদর্শ। এর ডকুমেন্ট ভিত্তিক ডেটা মডেল, স্কিমালেস স্ট্রাকচার, এবং horizontal scaling এর ক্ষমতা একে ডেভেলপারদের কাছে জনপ্রিয় করেছে। যদিও এটি রিলেশনাল ডাটাবেসের মতো জটিল ট্রানজ্যাকশন এবং রিলেশনশিপ ব্যবস্থাপনা সমর্থন করে না, MongoDB তবুও উচ্চ পারফরম্যান্স, নমনীয়তা, এবং স্কেলেবিলিটির জন্য NoSQL ডাটাবেস হিসেবে বিশেষভাবে ব্যবহৃত হয়।
আপনি আমাকে যেকোনো প্রশ্ন করতে পারেন, যেমনঃ
Are you sure to start over?