MongoDB and Mongoose

MongoDB is a document-oriented database. Mongoose provides schemas, models, validation, middleware, and convenient querying on top of MongoDB.

A schema describes document structure and a model provides an interface for interacting with a MongoDB collection.

Mongoose Schema and Query
import mongoose from 'mongoose';

const userSchema = new mongoose.Schema({
  name: { type: String, required: true },
  email: { type: String, required: true, unique: true }
});

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

const users = await User.find({ name: /sur/i }).lean();
console.log(users);
💡 The schema defines user fields and the model queries matching documents. lean() returns plain objects instead of full Mongoose documents.
Key Takeaways
  • Mongoose schemas define application-level document rules.
  • Indexes should support actual query patterns.
  • Use lean() when document methods and change tracking are unnecessary.
Knowledge Check

What does a Mongoose model primarily provide?