#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
5 min read
Question 13 of 27easy

What is Mongoose and how do you use it?

MongoDB ODM for Node.js.

What You'll Learn

  • What Mongoose is
  • Defining schemas
  • Basic operations

What is Mongoose?

Mongoose is an ODM (Object Document Mapper) for MongoDB and Node.js. It provides schema validation and a cleaner API.

Setup

code.jsJavaScript
const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/mydb');

Define Schema and Model

code.jsJavaScript
const userSchema = new mongoose.Schema({
  name: { type: String, required: true },
  email: { type: String, required: true, unique: true },
  age: { type: Number, min: 0 },
  role: { type: String, enum: ['user', 'admin'], default: 'user' },
  createdAt: { type: Date, default: Date.now }
});

const User = mongoose.model('User', userSchema);

CRUD Operations

code.jsJavaScript
// Create
const user = await User.create({ name: 'John', email: 'john@example.com' });
// or
const user = new User({ name: 'John', email: 'john@example.com' });
await user.save();

// Read
const users = await User.find({ role: 'admin' });
const user = await User.findById(id);
const user = await User.findOne({ email: 'john@example.com' });

// Update
await User.findByIdAndUpdate(id, { name: 'John Updated' }, { new: true });
await User.updateMany({ role: 'user' }, { $set: { active: true } });

// Delete
await User.findByIdAndDelete(id);
await User.deleteMany({ active: false });

Query Helpers

code.jsJavaScript
const users = await User
  .find({ age: { $gte: 18 } })
  .select('name email')
  .sort({ createdAt: -1 })
  .limit(10)
  .skip(20);