Loading lessons...
MongoDB & Mongoose Integration
Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node.js. It manages relationships, schema validation, and database queries.
1. Connecting to Database
javascript
const mongoose = require("mongoose");
async function connectDB() {
try {
const conn = await mongoose.connect(process.env.MONGODB_URL);
console.log(`MongoDB Connected: ${conn.connection.host}`);
} catch (err) {
console.error("Database connection failed:", err.message);
process.exit(1);
}
}
2. Defining Schema & Model
javascript
const userSchema = new mongoose.Schema({
name: { type: String, required: [true, "Name is required"], trim: true },
email: { type: String, required: true, unique: true, lowercase: true },
role: { type: String, enum: ["user", "admin"], default: "user" },
createdAt: { type: Date, default: Date.now }
});
const User = mongoose.model("User", userSchema);
3. Querying Models in Express Routes
javascript
// Create new document
app.post("/api/users", async (req, res) => {
const newUser = await User.create(req.body);
res.status(201).json({ status: "success", data: newUser });
});
// Query documents
app.get("/api/users", async (req, res) => {
const users = await User.find({ role: "user" }).select("-__v");
res.status(200).json({ status: "success", results: users.length, data: users });
});
TL;DR
- Use
mongoose.connect(url)to establish a connection pool. - Define schemas with validation rules to enforce data integrity.
- Use Mongoose model methods (
create,find,findByIdAndUpdate,deleteOne).