Database Tutorials Mongoose ORM ব্যবহার করা গাইড ও নোট

399

Mongoose হল MongoDB এর জন্য একটি জনপ্রিয় ORM (Object Relational Mapping) লাইব্রেরি, যা Node.js অ্যাপ্লিকেশনগুলিতে MongoDB এর সাথে সহজভাবে যোগাযোগ করার সুযোগ দেয়। Mongoose আপনাকে MongoDB ডেটাবেসের সাথে কাজ করতে সহজ, শক্তিশালী এবং নিরাপদ উপায় প্রদান করে, যেমন ডেটা মডেলিং, ভ্যালিডেশন, কোড প্রাকটিস, কাস্টম কুয়েরি ইত্যাদি।

Mongoose ব্যবহারের মাধ্যমে MongoDB ডেটাবেসের সাথে যোগাযোগকে আরও সিমপ্লিফাই করা যায়, এবং ডেটার কাঠামো এবং শর্তাবলী সহজভাবে পরিচালনা করা যায়।


Mongoose ORM ব্যবহার শুরু করা

১. Mongoose ইনস্টলেশন

প্রথমে আপনাকে Mongoose ইনস্টল করতে হবে। এটি Node.js এর জন্য একটি npm প্যাকেজ, এবং আপনি এটি npm ব্যবহার করে ইনস্টল করতে পারেন।

npm install mongoose

এটি ইনস্টল করার পর, আপনি এটি আপনার অ্যাপ্লিকেশনে ব্যবহার করতে পারবেন।

২. MongoDB এর সাথে সংযোগ স্থাপন

Mongoose ব্যবহার করতে প্রথমেই MongoDB এর সাথে সংযোগ স্থাপন করতে হবে। এই কাজটি mongoose.connect() ফাংশনের মাধ্যমে করা হয়।

সংযোগ উদাহরণ:

const mongoose = require('mongoose');

// MongoDB এর URI এবং কনফিগারেশন
mongoose.connect('mongodb://localhost:27017/mydatabase', {
  useNewUrlParser: true,
  useUnifiedTopology: true
})
.then(() => {
  console.log("MongoDB connected!");
})
.catch((err) => {
  console.error("Connection failed", err);
});

এখানে mydatabase হল MongoDB ডেটাবেসের নাম, এবং আপনি localhost বা MongoDB Atlas বা অন্য কোন ক্লাউড ডেটাবেস URI ব্যবহার করতে পারেন।


৩. Schema তৈরি এবং মডেল তৈরি করা

Mongoose তে Schema হলো ডেটার কাঠামো নির্ধারণকারী ব্লুপ্রিন্ট। Model হলো স্কিমা ভিত্তিক ডেটাবেসের মধ্যে ডকুমেন্ট তৈরি এবং পরিচালনা করার জন্য ব্যবহৃত ক্লাস।

  • Schema তৈরি: MongoDB ডেটাবেসে ডেটার কাঠামো (structure) নির্ধারণ করতে Schema তৈরি করা হয়।
  • Model তৈরি: একবার স্কিমা তৈরি হলে, আমরা মডেল তৈরি করি যা MongoDB ডেটাবেসের ডকুমেন্টে অপারেশন (CRUD) করার জন্য ব্যবহৃত হয়।

উদাহরণ:

const mongoose = require('mongoose');

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

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

এখানে userSchema একটি স্কিমা যা name, age, এবং email ফিল্ডের জন্য ডেটার কাঠামো নির্ধারণ করে। তারপর User মডেল তৈরি করা হয়েছে, যা User ডকুমেন্টে CRUD অপারেশন করতে ব্যবহৃত হবে।


৪. ডেটা ইনসার্ট (Create)

Mongoose ব্যবহার করে ডেটাবেসে ডেটা ইনসার্ট করা সহজ। আপনি যে মডেল তৈরি করেছেন, তার মাধ্যমে save() ফাংশন ব্যবহার করে নতুন ডকুমেন্ট ইনসার্ট করতে পারেন।

উদাহরণ:

const newUser = new User({
  name: "John Doe",
  age: 30,
  email: "johndoe@example.com"
});

newUser.save()
  .then((user) => {
    console.log("User saved:", user);
  })
  .catch((err) => {
    console.error("Error saving user:", err);
  });

এখানে newUser.save() ব্যবহার করা হয়েছে নতুন User ডকুমেন্ট MongoDB ডেটাবেসে ইনসার্ট করতে।


৫. ডেটা খোঁজা (Read)

Mongoose তে ডেটা খোঁজা অনেক সহজ। আপনি find(), findOne() বা findById() ব্যবহার করে MongoDB ডেটাবেস থেকে ডেটা অনুসন্ধান করতে পারেন।

উদাহরণ:

  • সব ডকুমেন্ট খোঁজা:

    User.find()
      .then((users) => {
        console.log("Users:", users);
      })
      .catch((err) => {
        console.error("Error finding users:", err);
      });
    
  • একটি নির্দিষ্ট ডকুমেন্ট খোঁজা:

    User.findOne({ name: "John Doe" })
      .then((user) => {
        console.log("Found user:", user);
      })
      .catch((err) => {
        console.error("Error finding user:", err);
      });
    
  • ID দিয়ে ডকুমেন্ট খোঁজা:

    User.findById('605c72ef15320725f2b8bf1e')
      .then((user) => {
        console.log("Found user by ID:", user);
      })
      .catch((err) => {
        console.error("Error finding user by ID:", err);
      });
    

৬. ডেটা আপডেট (Update)

Mongoose তে ডেটা আপডেট করতে updateOne(), updateMany(), অথবা findOneAndUpdate() ব্যবহার করা হয়।

উদাহরণ:

  • একটি ডকুমেন্ট আপডেট করা:

    User.updateOne({ name: "John Doe" }, { $set: { age: 31 } })
      .then(() => {
        console.log("User updated!");
      })
      .catch((err) => {
        console.error("Error updating user:", err);
      });
    
  • একটি ডকুমেন্টের সম্পূর্ণ তথ্য আপডেট করা:

    User.findOneAndUpdate({ name: "John Doe" }, { name: "Jane Doe", age: 32 }, { new: true })
      .then((user) => {
        console.log("Updated user:", user);
      })
      .catch((err) => {
        console.error("Error updating user:", err);
      });
    

৭. ডেটা মুছা (Delete)

Mongoose তে ডেটা মুছে ফেলতে deleteOne(), deleteMany(), অথবা findOneAndDelete() ব্যবহার করা হয়।

উদাহরণ:

  • একটি ডকুমেন্ট মুছা:

    User.deleteOne({ name: "John Doe" })
      .then(() => {
        console.log("User deleted!");
      })
      .catch((err) => {
        console.error("Error deleting user:", err);
      });
    
  • একাধিক ডকুমেন্ট মুছা:

    User.deleteMany({ age: { $lt: 30 } })
      .then(() => {
        console.log("Users deleted!");
      })
      .catch((err) => {
        console.error("Error deleting users:", err);
      });
    

৮. মডেল ভ্যালিডেশন (Model Validation)

Mongoose তে মডেল ভ্যালিডেশন ব্যবহার করা হয় যাতে ডেটাবেসে ইনসার্ট হওয়ার আগে ডেটা সঠিকভাবে যাচাই করা যায়। এটি স্কিমাতে required, min, max, enum ইত্যাদি ভ্যালিডেশন ফিচার দ্বারা কাস্টমাইজ করা যায়।

উদাহরণ:

const userSchema = new mongoose.Schema({
  name: { type: String, required: true },
  age: { type: Number, required: true, min: 18, max: 100 },
  email: { type: String, required: true, unique: true, match: /.+\@.+\..+/ }
});

এখানে name, age, এবং email ফিল্ডের জন্য ভ্যালিডেশন শর্ত সেট করা হয়েছে।


সারাংশ

Mongoose ORM ব্যবহার করে MongoDB ডেটাবেসের সাথে সহজেই যোগাযোগ করা যায়। এটি ডেটা মডেলিং, ভ্যালিডেশন, কুয়েরি অপারেশন এবং CRUD কার্যক্রম সম্পাদন করতে সহায়তা করে। Mongoose MongoDB ডেটাবেসে ডেটার কাঠামো নির্ধারণ, ডেটা ইনসার্ট, আপডেট, খোঁজা, মুছে ফেলা, এবং শর্তাবলী বাস্তবায়ন সহজ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...