Mongoose ব্যবহার করে MongoDB ইন্টিগ্রেশন

ExpressJS এবং ডাটাবেস ইন্টিগ্রেশন - এক্সপ্রেসজেএস (ExpressJS) - Web Development

255

MongoDB হল একটি NoSQL ডাটাবেস, এবং ExpressJS-এ MongoDB-এর সাথে কাজ করার জন্য Mongoose হল সবচেয়ে জনপ্রিয় প্যাকেজ। Mongoose MongoDB-এর সাথে যোগাযোগ স্থাপন করতে এবং ডাটাবেসের ডেটা পরিচালনা করতে একটি শক্তিশালী ও সহজ API প্রদান করে। এটি ডাটাবেসের জন্য একটি Object Data Modeling (ODM) লাইব্রেরি, যা MongoDB এর ডেটাকে JavaScript অবজেক্ট হিসেবে পরিচালনা করতে সহায়তা করে।

Mongoose ব্যবহার করার মাধ্যমে আপনি MongoDB-এর ডকুমেন্ট গুলোকে সহজে মডেল ও স্কিমার মাধ্যমে ম্যানেজ করতে পারেন।


১. Mongoose ইন্টিগ্রেশন: স্টেপ বাই স্টেপ গাইড

১.১. Mongoose প্যাকেজ ইনস্টল করা

প্রথমে, আপনাকে Mongoose প্যাকেজটি ইনস্টল করতে হবে:

npm install mongoose

১.২. MongoDB ইনস্টল এবং চালু করা

MongoDB ইন্সটল করা না থাকলে প্রথমে তা ইনস্টল করতে হবে। যদি আপনি লোকালভাবে MongoDB চালু করতে চান, তাহলে নিচের কমান্ড দিয়ে MongoDB সার্ভার চালু করতে হবে:

mongod

এবং তারপর আপনি localhost:27017 এ MongoDB অ্যাক্সেস করতে পারবেন।

১.৩. Mongoose দিয়ে MongoDB সংযোগ করা

ExpressJS অ্যাপ্লিকেশনে Mongoose ব্যবহার করে MongoDB-র সাথে সংযোগ করতে নিম্নলিখিত কোডটি ব্যবহার করুন:

const express = require('express');
const mongoose = require('mongoose');
const app = express();
const port = 3000;

// MongoDB URI (লোকাল MongoDB বা ক্লাউড MongoDB URI ব্যবহার করা যায়)
const mongoURI = 'mongodb://localhost:27017/mydatabase';

// MongoDB এর সাথে সংযোগ
mongoose.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => {
    console.log('MongoDB connected successfully');
  })
  .catch(err => {
    console.log('MongoDB connection error:', err);
  });

// API রাউট
app.get('/', (req, res) => {
  res.send('Hello MongoDB!');
});

// সার্ভার শুরু করা
app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}`);
});

এখানে mongoose.connect() ফাংশনটি MongoDB-এর URI ব্যবহার করে সংযোগ স্থাপন করে এবং যদি সংযোগ সফল হয়, তাহলে কনসোলে "MongoDB connected successfully" মেসেজ প্রিন্ট হবে।


২. Mongoose Schema এবং Model তৈরি করা

Mongoose এর প্রধান শক্তি হল Schema এবং Model ব্যবহার করা, যা MongoDB ডেটার স্ট্রাকচার ও ডেটা ম্যানিপুলেশন সহজ করে।

২.১. Mongoose Schema তৈরি করা

Schema MongoDB ডাটাবেসে কোনো ডকুমেন্টের কাঠামো (structure) নির্ধারণ করে। এটি নির্ধারণ করে যে ডকুমেন্টে কোন ফিল্ড থাকবে এবং তাদের ডেটা টাইপ কি হবে।

const mongoose = require('mongoose');

// Schema তৈরি করা
const userSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  email: {
    type: String,
    required: true,
    unique: true
  },
  age: {
    type: Number,
    required: true
  }
});

// Model তৈরি করা
const User = mongoose.model('User', userSchema);

module.exports = User;

এখানে, userSchema একটি ডকুমেন্টের কাঠামো তৈরি করেছে, যেখানে তিনটি ফিল্ড (name, email, age) রয়েছে। mongoose.model() ফাংশনটি এই schema কে একটি Model এ রূপান্তরিত করেছে, যার মাধ্যমে ডাটাবেসের ডেটার সাথে CRUD অপারেশন করা যাবে।

২.২. Mongoose Model ব্যবহার করা

Model ব্যবহার করে MongoDB ডাটাবেসে ডেটা ইন্সার্ট, আপডেট, রিট্রিভ এবং ডিলিট করা যায়।

ডেটা ইনসার্ট করা:

const User = require('./models/User');  // User Model

app.post('/add-user', (req, res) => {
  const newUser = new User({
    name: 'John Doe',
    email: 'john@example.com',
    age: 30
  });

  newUser.save()
    .then(user => res.json(user))
    .catch(err => res.status(400).json('Error: ' + err));
});

এখানে, new User() ব্যবহার করে একটি নতুন ব্যবহারকারী তৈরি করা হয়েছে এবং save() মেথডের মাধ্যমে সেটি ডাটাবেসে সংরক্ষণ করা হয়েছে।

ডেটা রিট্রিভ করা (Get):

app.get('/users', (req, res) => {
  User.find()
    .then(users => res.json(users))
    .catch(err => res.status(400).json('Error: ' + err));
});

এখানে, User.find() মেথডটি সমস্ত ব্যবহারকারীকে ডাটাবেস থেকে রিট্রিভ করবে এবং res.json() মাধ্যমে JSON ফরম্যাটে ফিরিয়ে দেবে।

ডেটা আপডেট করা:

app.put('/update-user/:id', (req, res) => {
  User.findByIdAndUpdate(req.params.id, { age: 35 })
    .then(() => res.json('User updated successfully'))
    .catch(err => res.status(400).json('Error: ' + err));
});

এখানে, findByIdAndUpdate() মেথডটি ব্যবহার করে একটি নির্দিষ্ট ব্যবহারকারীর আইডি অনুযায়ী বয়স আপডেট করা হয়েছে।

ডেটা ডিলিট করা:

app.delete('/delete-user/:id', (req, res) => {
  User.findByIdAndDelete(req.params.id)
    .then(() => res.json('User deleted successfully'))
    .catch(err => res.status(400).json('Error: ' + err));
});

এখানে, findByIdAndDelete() মেথডটি ব্যবহার করে একটি নির্দিষ্ট ব্যবহারকারীকে ডিলিট করা হয়েছে।


৩. Validation এবং Error Handling

Mongoose Schema-তে ভ্যালিডেশন সেটআপ করা যায় যাতে ইনপুট ডেটা সঠিক থাকে। যেমন, নাম এবং ইমেইল ফিল্ডে required এবং unique কন্ডিশন দেওয়া যায়। এছাড়াও, error handling এর মাধ্যমে আপনি ভুল ইনপুট বা কনেকশন সমস্যা ধরতে পারবেন।

const userSchema = new mongoose.Schema({
  name: {
    type: String,
    required: [true, 'Name is required']  // কাস্টম মেসেজ
  },
  email: {
    type: String,
    required: [true, 'Email is required'],
    unique: true
  },
  age: {
    type: Number,
    min: [18, 'Age must be 18 or older']  // বয়সের জন্য ভ্যালিডেশন
  }
});

এখানে, required এবং min কন্ডিশন দেওয়া হয়েছে, যা ডেটা সাবমিশন বা ইনসার্ট করার সময় যাচাই করবে।


৪. MongoDB Atlas ব্যবহার করে Mongoose ইন্টিগ্রেশন

MongoDB Atlas হল MongoDB এর ক্লাউড ভিত্তিক সার্ভিস, যেখানে MongoDB ডাটাবেস ম্যানেজ করা হয়। যদি আপনি Atlas ব্যবহার করতে চান, তবে আপনার MongoDB URI কিছুটা ভিন্ন হবে:

const mongoURI = 'mongodb+srv://<username>:<password>@cluster0.mongodb.net/mydatabase?retryWrites=true&w=majority';

mongoose.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => {
    console.log('MongoDB connected successfully');
  })
  .catch(err => {
    console.log('MongoDB connection error:', err);
  });

এখানে, MongoDB Atlas থেকে URI কপি করে ব্যবহার করতে হয়।


সারাংশ

ExpressJS-এর সাথে MongoDB ইন্টিগ্রেশন করার জন্য Mongoose একটি শক্তিশালী এবং সহজ উপায়। Mongoose MongoDB ডাটাবেসের জন্য স্কিমা এবং মডেল তৈরি করার মাধ্যমে ডেটা পরিচালনা করতে সহায়তা করে। এটি ডেটার ভ্যালিডেশন, কাস্টম মেসেজ, এবং CRUD অপারেশন সহজভাবে সম্পাদন করতে সক্ষম। MongoDB Atlas ব্যবহার করে আপনি ক্লাউড-ভিত্তিক ডাটাবেসের সাথে কাজ করতে পারেন। Mongoose দিয়ে MongoDB ইন্টিগ্রেশন করে আপনি একটি সুরক্ষিত এবং স্কেলেবল অ্যাপ্লিকেশন তৈরি করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...