Intermediate LevelMongoDB & Mongoose
What Cursor options exist (noCursorTimeout, exhaust) for streaming large datasets?
❓ Interview Prompt: Explain MongoDB Cursor options, 10-minute idle cursor timeout, noCursorTimeout, batchSize, and memory safety during large processing tasks.
By default, MongoDB server cursors automatically close after 10 minutes of inactivity. Long-running batch jobs processing items slowly can trigger cursor timeout errors!
Solution:
Apply 'noCursorTimeout' and configure appropriate 'batchSize()' to control batch retrieval.
Code Implementation Example
typescript
import { OrderModel } from './models/Order';
async function processLargeBatchExport() {
const cursor = OrderModel.find().cursor({
batchSize: 500
});
for await (const doc of cursor) {
// Process each document asynchronously without memory overflow
await processDoc(doc);
}
}💡Streaming large dataset cursors in Node.js with batchSize control.
🎯 Interview Key Takeaway
Use cursor iteration with batchSize tuning to process large datasets without exhausting Node.js memory.
#Cursor#batchSize#Streaming#Intermediate
Back to all MongoDB & Mongoose Questions→