NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4415 most downloaded on npm
Mongoose MongoDB ODM
Last release today
04 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 57 of the last 60 stable releases
4 versions withdrawn
withdrawn after publishing
16 years old
1021 releases · first in 2010
feat: upgrade mongodb -> 6.8.0, handle throwing error on closed cursor in Mongoose with MongooseError instead of MongoCursorExhaustedError #14813
MongooseError instead of MongoCursorExhaustedError #14813fix(populate): fix a couple of other places where Mongoose gets the document's _id with getters #14833 #14827 #14759
One column per quarter.
fix: add empty string check for collection name passed #14806 Shubham2552
fix(document): call required functions on subdocuments underneath nested paths with correct context #14801 #14788
lean() set #14799 #14794 #14759 MohOrabyperf(clone): avoid further unnecessary checks if cloning a primitive value #14762 #14394
perf(model): performance improvements for insertMany() #14724
perf: memoize toJSON / toObject default options #14672
types: correct this for validate.validator schematype option #14720 #14696
perf: avoid unnecesary get() call and use faster approach for converting to string #14673 #14394
fix: remove 0x flamegraph files from release
perf: more toObject() perf improvements #14623 #14606 #14394
fix: pass options to clone instead of get in applyVirtuals #14606 #14543 andrews05
feat: upgrade mongodb -> 6.6.2 #14584
fix(query): shallow clone $or, $and if merging onto empty query filter #14580 #14567
perf(document): avoid cloning options using spread operator for perf reasons #14565 #14394
perf(document): add fast path for applying non-nested virtuals to JSON #14543
fix(populate): avoid match function filtering out null values in populate result #14518 #14494
fix(document): make update minimization unset property rather than setting to null #14504 #14445
feat(document): add validateAllPaths option to validate() and validateSync() #14467 #14414
types(query): bring "getFilter" and "getQuery" in-line with "find" and other types #14463 hasezoey
fix(schema): avoid returning string 'nested' as schematype #14453 #14443 #14435
fix(model): improve update minimizing to only minimize top-level properties in the update #14437 #14420 #13782
fix(document): make $clone avoid converting subdocs into POJOs #14395 #14353
feat(model): add recompileSchema() function to models to allow applying schema changes after compiling #14306 #14296
hydratedPopulatedDocs option to make hydrate recursively hydrate populated docs #14352 #4727fix: avoid corrupting $set-ed arrays when transaction error occurs #14346 #14340
toObject.versionKey set to false #14344fix: include virtuals in document array toString() output if toObject.virtuals set #14335 #14315
createCollections() #14295 #14279fix(model): throw readable error when calling Model() with a string instead of model() #14288 #14281
feat: upgrade MongoDB driver -> 6.3.0 #14241 #14189 #14108 #14104
docs: update TLS/SSL guide for Mongoose v8 - MongoDB v6 driver deprecations #14170 andylwelch
fix(schema): avoid creating unnecessary clone of schematype in nested array so nested document arrays use correct constructor #14128 #14101
refPath and ref functions #14133 #13834types(document): correct return type for doc.deleteOne() re: Mongoose 8 breaking change #14110 #14081
fix: retain key order with aliases when creating indexes with alias #14042 meabed
this parameter for methods and statics #14028 #14027 ruxxzebredocs: add version support notes for Mongoose 8, including EOL date for Mongoose 6
BREAKING CHANGE: use MongoDB node driver 6, drop support for rawResult option and findOneAndRemove() #13753
id setter #13784Model.count(), Query.prototype.count() #13618 #13598mongoose/lib/mongoose.js file to allow importing Mongoose without MongoDB driver #13905null for optional fields #13901fix(query): apply sanitizeFilter in countDocuments and cursor
fix(utils): allow merging single nested paths and document array paths outside of discriminator schema merges #16351 #9534
fix(document): add additional defensive checks for special properties in Document.prototype.get()
Nothing published for this version
fix(bulkWrite): pass overwriteImmutable option to castUpdate fixes #15789 #15782 #15781
types(aggregate): allow calling project() with a string #15304 #15300
chore: remove coverage output from bundle
chore: re-release to force npm audit to pick up 6.x fix for CVE-2025-23061
fix: disallow nested $where in populate match
fix: disallow using $where in match
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
fix(populate): handle multiple spaces when specifying paths to populate using space-delimited paths #13984 #13951
perf: avoid storing a separate entry in schema subpaths for every element in an array #13953 #13874
Your coding agent can read these notes before it upgrades. Set up the MCP server →