Q1. What is Mongoose?
Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node.js. It provides a schema-based solution to model application data, with built-in type casting, validation, query building, and middleware. It simplifies MongoDB interactions and enforces structure while maintaining flexibility.
Q2. How do you install and connect Mongoose?
Install:
npm install mongoose
Connect: const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/mydb')
.then(() => console.log('Connected'))
.catch(err => console.error('Connection error', err));
Q3. What are the advantages of using Mongoose over the native driver?
Mongoose provides:
- Schema definitions with data types and validation
- Middleware (pre/post hooks) for business logic
- Built-in casting and population for references
- Easier query syntax with chainable methods
- Default values and virtual properties
- Connection management and model abstraction
Q4. What is a Mongoose model?
A model is a compiled version of a schema that provides an interface to a database collection. Example:
const userSchema = new mongoose.Schema({ name: String });
const User = mongoose.model('User', userSchema);
Now User.find(), User.create(), etc., work on the 'users' collection.Q5. How do you handle connection events in Mongoose?
Mongoose connection emits events:
mongoose.connection.on('connected', () => {});
mongoose.connection.on('error', (err) => {});
mongoose.connection.on('disconnected', () => {});
You can also use these for logging or cleanup.