NoSQL → MongoDB ( মঙ্গডিবি )

Jahangir Alam
4 min readApr 11, 2020

--

কন্টেন্ট

  • Installation
  • CRUD operation

Installation process

এখানে MongoDB র অফিসিয়াল ডকুমেন্টেশন থেকে install করে নিতে হবে ।

install হয়ে গেলে প্রথমে mongod রান করতে হবে এরপর নতুন টার্মিনাল ওপেন করে mongo রান করতে হবে ।

stitch হচ্ছে মূলত সার্ভার লেস বেকেন্ড সল্যুশন ।

এটা আসলে ডাটাবেজ থেকে আলাদা কিন্তু বেকেন্ড সল্যুশন ।

যেমন stitch আমাদের query api এর সুবিধা দেয় । এটা আসলে একধরনের টুলসেট যেটা ক্লিয়েন্ট সাইট থেকে সরাসরি query করার সুবিধা দেয় রিয়েক্ট অথবা কোন ফ্রন্টএন্ড থেকে ।

যদি এক্সটারনালই বলে দিতে হয় কোথায় ডাটা সেভ হবে সেজন্য প্রথমে আমাদের mongo conf ফাইলে বলে দিতে হয় এরপর রিস্টার্ট করতে হবে । এরপর নিচের কমান্ডের মাধ্যমে mongo ডাটাবেজে ঢুকতে হয় ।

mongod --dbpath "/data/db"

mongo তে টার্মিনাল ক্লিয়ার করার জন্য cls কমান্ড দিতে হয় ।

কি কি ডাটাবেজ আছে

show dbs

create database

use shop

SQL বা mySQL এ যেটাকে টেবিল বলা হয় NoSQL অর্থাৎ mongo ডাটাবেজে সেটাকে collection বলা হয় ।

কালেকশনের আণ্ডারে অসংখ্য Documents থাকে ।

db.products.insertOne({ name : "A book", price : 12.99 })

এখানে আমরা shop ডাটাবেজে product নামে একটি কালেকশন তৈরি করে সেখানে কিছু ডাটা insert করলাম অর্থাৎ আমরা একটি Document তৈরি করলাম ।

db.products.find()

products কালেকশনে কি কি ডাটা অর্থাৎ Documents আছে সেটা দেখাবে ।

db.products.find().pretty()

pretty() ফাংশনে আউটপুট সুন্দর করে দেখাতে সাহায্য করে ।

MongoDB drivers and ODM থেকে বিভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজের সাপোর্ট ODM দেখে নেওয়া যেতে পারে ।

ডিফল্ট ইঞ্জিন হিসেবে wired Tiger ইউজ করা হয় ।

MongoDB সার্ভার প্রথমে mongo shell অথবা ড্রাইভার থেকে স্ক্রিপ্ট নেয় এরপর ইঞ্জিনের কাছে সেটা ট্রান্সফার করে ডাটা মেনুপুলেসনের জন্য ।

ROM থেকে ডাটা মেন্যুপুলেসন একটু স্লো কিন্তু in memory তে অনেক ফাস্ট সেজন্য mongo তে in memory তেও ডাটা মেন্যুপুলেসন করা যায় ।

এরপর sudo mongod দিলে mongodb র সার্ভার চালু হবে , যদি না হয় পোর্টে সমস্যা ক্রে তাহলে নিচের কমান্ড দিয়ে পোর্ট চেঞ্জ করে দিতে হবে ।

sudo mongod --port 27018

এখন mongod সার্ভার চালু হয়ে গেলে mongo shell এ যাবো নিচের এই কমান্ড দিয়ে ।

mongo

নতুন ইউজার তৈরি করবো ।

db.createUser({user: "sany", pwd: passwordPrompt(),roles: ["readWrite"] });

ইউজার চেক করবো ।

db.getUsers();

লগইন করবো নিচের এই কমান্ড দিয়ে ।

db.auth("sany")

কোন ইউজার লগইন করা আছে সেটা দেখবো নিচের কমান্ডের সাহায্যে ।

db.runCommand({connectionStatus : 1})

যদি পোর্ট চেঞ্জ করি তাহলে ঐ পোর্টে দিয়েই mongo তে ঢুকতে হবে ।

mongo --port 27018

create database

use flight

insert data in database

db.flightData.insertOne({
... "departureAirport": "MUC",
... "arrivalAirport": "SFQ"
... });

show data in a database

db.flightData.find().pretty();

show collections

show collections

Restore data from bson data

database name হচ্ছে test আর /home/jahangir/sample_data এই লোকেশনে আমাদের bson ডাটাগুলো আছে , এই bson ফাইলের ডাটাগুলো থেকেই আমরা আমাদের ডাটাবেজে ডাটাগুলো restore করবো নিচের কমান্ডের সাহায্যে ।

$ mongorestore --port=27018 -d test /home/jahangir/sample_data

mongostore রিলেটেড documentation নিচের এই লিঙ্কে আছে ।

Export data from mongodb

test নামের ডাটাবেজের কালেকশন গুলো ডাম্প করবো । data গুলো সেভ হবে data/db ডিরেক্টরির আন্ডারে ।

mongodump mongodb://127.0.0.1:27018/ -d test

Create Admin User

নিচের এই কমান্ডের সাহায্যে আমরা admin ইউজার তৈরি করতে পারবো ।

> db.createUser({
... user: "sany",
... pwd: "sany284",
... roles: [
... { role: "userAdminAnyDatabase", db: "admin" },
... { role: "readWriteAnyDatabase", db: "admin" }
... ]
... })

--

--

No responses yet