Beginner LevelMongoDB & Mongoose
Why does calling .lean() on Mongoose queries dramatically improve read speeds?
❓ Interview Prompt: Explain Mongoose Document instantiation overhead, getters/setters, change tracking, and 5x performance gains with .lean().
By default, Mongoose query results return heavy Mongoose Document instances featuring internal state tracking, getters/setters, and virtual methods.
The .lean() Optimization:
Calling '.lean()' instructs Mongoose to return plain JavaScript objects directly from the MongoDB driver:
•
Bypasses Mongoose document wrapper instantiation overhead.
•
Delivers up to 5x faster read queries and significantly lowers Node.js memory footprint!
Code Implementation Example
typescript
import { ProductModel } from './models/Product';
async function getReadOptimizedCatalog() {
// Returns high-performance plain JS objects!
const products = await ProductModel.find({ isPublic: true }).lean().exec();
return products;
}💡Executing read-optimized Mongoose queries using .lean().
🎯 Interview Key Takeaway
Always append .lean() to read-only Mongoose queries to bypass document wrapper instantiation and boost performance 5x.
#lean#Performance#Mongoose Optimization#Beginner
Back to all MongoDB & Mongoose Questions→