MongoDBBeginner
Mongoose কেন ব্যবহার করব?
Mongoose-এর প্রধান সুবিধাগুলো — schema, validation, populate, middleware — যা native MongoDB driver-এ নেই — বাংলায়।
7টি অংশবাংলা ভাষায়
MongoDB-র সাথে কথা বলার সরাসরি উপায় হলো native driver (mongodb package)। তাহলে Mongoose কেন? কয়েকটি বাস্তব কারণ নিচে দেখুন।
Major সুবিধা
- Schema ডিফাইন — document-এর structure, field type ও default এক জায়গায়
- Built-in validation —
required,enum,min/max, pattern matching - Populate —
ObjectIdreference দিয়ে related document এক query-তেই আনা - Middleware hooks — save/find/delete-এর আগে-পরে custom logic
- Chainable query builder — clear ও readable query লেখা
- Indexes — schema থেকে সহজে index define
- TypeScript support — strong typing সহ ডেটা মডেল
Native Driver vs Mongoose
Native MongoDB driverjs
js
const { MongoClient } = require("mongodb");
const client = await MongoClient.connect(uri);
const db = client.db("shop");
// কোনো structure বা validation নেই — সব নিজে handle করতে হয়
await db.collection("users").insertOne({
name: "রহিম",
email: "rahim@example.com",
age: 25, // string দিলেও কোনো বাধা নেই
});Mongoose-এ একই কাজjs
js
const userSchema = new mongoose.Schema({
name: { type: String, required: true },
email: { type: String, required: true },
age: { type: Number, min: 0 },
});
const User = mongoose.model("User", userSchema);
// age-তে string দিলে validation error — structure বাধ্যতামূলক
await User.create({ name: "রহিম", email: "rahim@example.com", age: 25 });কখন Mongoose-এর দরকার নাও হতে পারে
শুধু সহজ read/write, aggregation-heavy বা extreme performance-sensitive কাজের জন্য native driver-ই যথেষ্ট ও হালকা। কিন্তু একটি growing application-এ structure, validation ও relationship manage করতে Mongoose সময় বাঁচায়।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।