Automattic/mongoose (mongoose)
### [`v7.8.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#781--2024-08-19)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.8.0...7.8.1)
\==================
- fix(query): handle casting $switch in $expr [#14761](https://togithub.com/Automattic/mongoose/issues/14761)
- docs(mongoose): remove out-of-date callback-based example for mongoose.connect() [#14811](https://togithub.com/Automattic/mongoose/issues/14811) [#14810](https://togithub.com/Automattic/mongoose/issues/14810)
### [`v7.8.0`](https://togithub.com/Automattic/mongoose/compare/7.7.0...7.8.0)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.7.0...7.8.0)
### [`v7.7.0`](https://togithub.com/Automattic/mongoose/compare/7.6.13...7.7.0)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.13...7.7.0)
### [`v7.6.13`](https://togithub.com/Automattic/mongoose/compare/7.6.12...7.6.13)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.12...7.6.13)
### [`v7.6.12`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#7612--2024-05-21)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.11...7.6.12)
\===================
- fix(array): avoid converting to $set when calling pull() on an element in the middle of the array [#14531](https://togithub.com/Automattic/mongoose/issues/14531) [#14502](https://togithub.com/Automattic/mongoose/issues/14502)
- fix: bump mongodb driver to 5.9.2 [#14561](https://togithub.com/Automattic/mongoose/issues/14561) [lorand-horvath](https://togithub.com/lorand-horvath)
- fix(update): cast array of strings underneath doc array with array filters [#14605](https://togithub.com/Automattic/mongoose/issues/14605) [#14595](https://togithub.com/Automattic/mongoose/issues/14595)
### [`v7.6.11`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#7611--2024-04-11)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.10...7.6.11)
\===================
- fix(populate): avoid match function filtering out null values in populate result [#14518](https://togithub.com/Automattic/mongoose/issues/14518)
- fix(schema): support setting discriminator options in Schema.prototype.discriminator() [#14493](https://togithub.com/Automattic/mongoose/issues/14493) [#14448](https://togithub.com/Automattic/mongoose/issues/14448)
- fix(schema): deduplicate idGetter so creating multiple models with same schema doesn't result in multiple id getters [#14492](https://togithub.com/Automattic/mongoose/issues/14492) [#14457](https://togithub.com/Automattic/mongoose/issues/14457)
### [`v7.6.10`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#7610--2024-03-13)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.9...7.6.10)
\===================
- docs(model): add extra note about lean option for insertMany() skipping casting [#14415](https://togithub.com/Automattic/mongoose/issues/14415)
- docs(mongoose): add options.overwriteModel details to mongoose.model() docs [#14422](https://togithub.com/Automattic/mongoose/issues/14422)
### [`v7.6.9`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#769--2024-02-26)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.8...7.6.9)
\==================
- fix(document): handle embedded recursive discriminators on nested path defined using Schema.prototype.discriminator [#14256](https://togithub.com/Automattic/mongoose/issues/14256) [#14245](https://togithub.com/Automattic/mongoose/issues/14245)
- types(model): correct return type for findByIdAndDelete() [#14233](https://togithub.com/Automattic/mongoose/issues/14233) [#14190](https://togithub.com/Automattic/mongoose/issues/14190)
- docs(connections): add note about using asPromise() with createConnection() for error handling [#14364](https://togithub.com/Automattic/mongoose/issues/14364) [#14266](https://togithub.com/Automattic/mongoose/issues/14266)
- docs(model+query+findoneandupdate): add more details about overwriteDiscriminatorKey option to docs [#14264](https://togithub.com/Automattic/mongoose/issues/14264) [#14246](https://togithub.com/Automattic/mongoose/issues/14246)
### [`v7.6.8`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#768--2024-01-08)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.7...7.6.8)
\==================
- perf(schema): remove unnecessary lookahead in numeric subpath check
- fix(discriminator): handle reusing schema with embedded discriminators defined using Schema.prototype.discriminator [#14202](https://togithub.com/Automattic/mongoose/issues/14202) [#14162](https://togithub.com/Automattic/mongoose/issues/14162)
- fix(ChangeStream): avoid suppressing errors in closed change stream [#14206](https://togithub.com/Automattic/mongoose/issues/14206) [#14177](https://togithub.com/Automattic/mongoose/issues/14177)
### [`v7.6.7`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#767--2023-12-06)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.6...7.6.7)
\==================
- fix: avoid minimizing single nested subdocs if they are required [#14151](https://togithub.com/Automattic/mongoose/issues/14151) [#14058](https://togithub.com/Automattic/mongoose/issues/14058)
- fix(populate): allow deselecting discriminator key when populating [#14155](https://togithub.com/Automattic/mongoose/issues/14155) [#3230](https://togithub.com/Automattic/mongoose/issues/3230)
- fix: allow adding discriminators using Schema.prototype.discriminator() to subdocuments after defining parent schema [#14131](https://togithub.com/Automattic/mongoose/issues/14131) [#14109](https://togithub.com/Automattic/mongoose/issues/14109)
- fix(schema): avoid creating unnecessary clone of schematype in nested array so nested document arrays use correct constructor [#14128](https://togithub.com/Automattic/mongoose/issues/14128) [#14101](https://togithub.com/Automattic/mongoose/issues/14101)
- fix(populate): call transform object with single id instead of array when populating a justOne path under an array [#14135](https://togithub.com/Automattic/mongoose/issues/14135) [#14073](https://togithub.com/Automattic/mongoose/issues/14073)
- types: add back mistakenly removed findByIdAndRemove() function signature [#14136](https://togithub.com/Automattic/mongoose/issues/14136) [#14132](https://togithub.com/Automattic/mongoose/issues/14132)
### [`v7.6.6`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#766--2023-11-27)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.5...7.6.6)
\==================
- perf: avoid double-running setter logic when calling `push()` [#14120](https://togithub.com/Automattic/mongoose/issues/14120) [#11380](https://togithub.com/Automattic/mongoose/issues/11380)
- fix(populate): set populated docs in correct order when populating virtual underneath doc array with justOne [#14105](https://togithub.com/Automattic/mongoose/issues/14105) [#14018](https://togithub.com/Automattic/mongoose/issues/14018)
- fix: bump mongodb driver -> 5.9.1 [#14084](https://togithub.com/Automattic/mongoose/issues/14084) [#13829](https://togithub.com/Automattic/mongoose/issues/13829) [lorand-horvath](https://togithub.com/lorand-horvath)
- types: allow defining document array using \[{ prop: String }] syntax [#14095](https://togithub.com/Automattic/mongoose/issues/14095) [#13424](https://togithub.com/Automattic/mongoose/issues/13424)
- types: correct types for when includeResultMetadata: true is set [#14078](https://togithub.com/Automattic/mongoose/issues/14078) [#13987](https://togithub.com/Automattic/mongoose/issues/13987) [prathamVaidya](https://togithub.com/prathamVaidya)
- types(query): base filters and projections off of RawDocType instead of DocType so autocomplete doesn't show populate [#14118](https://togithub.com/Automattic/mongoose/issues/14118) [#14077](https://togithub.com/Automattic/mongoose/issues/14077)
- types: make property names show up in intellisense for UpdateQuery [#14123](https://togithub.com/Automattic/mongoose/issues/14123) [#14090](https://togithub.com/Automattic/mongoose/issues/14090)
- types(model): support calling Model.validate() with pathsToSkip option [#14088](https://togithub.com/Automattic/mongoose/issues/14088) [#14003](https://togithub.com/Automattic/mongoose/issues/14003)
- docs: remove "DEPRECATED" warning mistakenly added to read() tags param [#13980](https://togithub.com/Automattic/mongoose/issues/13980)
### [`v7.6.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#765--2023-11-14)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.4...7.6.5)
\==================
- fix: handle update validators and single nested doc with numeric paths [#14066](https://togithub.com/Automattic/mongoose/issues/14066) [#13977](https://togithub.com/Automattic/mongoose/issues/13977)
- fix: handle recursive schema array in discriminator definition [#14068](https://togithub.com/Automattic/mongoose/issues/14068) [#14055](https://togithub.com/Automattic/mongoose/issues/14055)
- fix: diffIndexes treats namespace error as empty [#14048](https://togithub.com/Automattic/mongoose/issues/14048) [#14029](https://togithub.com/Automattic/mongoose/issues/14029)
- docs(migrating_to\_7): add note about requiring new with ObjectId [#14021](https://togithub.com/Automattic/mongoose/issues/14021) [#14020](https://togithub.com/Automattic/mongoose/issues/14020)
### [`v7.6.4`](https://togithub.com/Automattic/mongoose/compare/7.6.3...7.6.4)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.3...7.6.4)
### [`v7.6.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#763--2023-10-17)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.2...7.6.3)
\==================
- fix(populate): handle multiple spaces when specifying paths to populate using space-delimited paths [#13984](https://togithub.com/Automattic/mongoose/issues/13984) [#13951](https://togithub.com/Automattic/mongoose/issues/13951)
- fix(update): avoid applying defaults on query filter when upserting with empty update [#13983](https://togithub.com/Automattic/mongoose/issues/13983) [#13962](https://togithub.com/Automattic/mongoose/issues/13962)
- fix(model): add versionKey to bulkWrite when inserting or upserting [#13981](https://togithub.com/Automattic/mongoose/issues/13981) [#13944](https://togithub.com/Automattic/mongoose/issues/13944)
- docs: fix typo in timestamps docs [#13976](https://togithub.com/Automattic/mongoose/issues/13976) [danielcoker](https://togithub.com/danielcoker)
### [`v7.6.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#762--2023-10-13)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.1...7.6.2)
\==================
- perf: avoid storing a separate entry in schema subpaths for every element in an array [#13953](https://togithub.com/Automattic/mongoose/issues/13953) [#13874](https://togithub.com/Automattic/mongoose/issues/13874)
- fix(document): avoid triggering setter when initializing Model.prototype.collection to allow defining collection as a schema path name [#13968](https://togithub.com/Automattic/mongoose/issues/13968) [#13956](https://togithub.com/Automattic/mongoose/issues/13956)
- fix(model): make bulkSave() save changes in discriminator paths if calling bulkSave() on base model [#13959](https://togithub.com/Automattic/mongoose/issues/13959) [#13907](https://togithub.com/Automattic/mongoose/issues/13907)
- fix(document): allow calling $model() with no args for TypeScript [#13963](https://togithub.com/Automattic/mongoose/issues/13963) [#13878](https://togithub.com/Automattic/mongoose/issues/13878)
- fix(schema): handle embedded discriminators defined using Schema.prototype.discriminator() [#13958](https://togithub.com/Automattic/mongoose/issues/13958) [#13898](https://togithub.com/Automattic/mongoose/issues/13898)
- types(model): make InsertManyResult consistent with return type of insertMany [#13965](https://togithub.com/Automattic/mongoose/issues/13965) [#13904](https://togithub.com/Automattic/mongoose/issues/13904)
- types(models): add cleaner type definitions for insertMany() with no generics to prevent errors when using insertMany() in generic classes [#13964](https://togithub.com/Automattic/mongoose/issues/13964) [#13957](https://togithub.com/Automattic/mongoose/issues/13957)
- types(schematypes): allow defining map path using type: 'Map' in addition to type: Map [#13960](https://togithub.com/Automattic/mongoose/issues/13960) [#13755](https://togithub.com/Automattic/mongoose/issues/13755)
### [`v7.6.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#761--2023-10-09)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.0...7.6.1)
\==================
- fix: bump bson to match mongodb@5.9.0 exactly [#13947](https://togithub.com/Automattic/mongoose/issues/13947) [hasezoey](https://togithub.com/hasezoey)
- fix: raw result deprecation message [#13954](https://togithub.com/Automattic/mongoose/issues/13954) [simllll](https://togithub.com/simllll)
- type: add types for includeResultMetadata [#13955](https://togithub.com/Automattic/mongoose/issues/13955) [simllll](https://togithub.com/simllll)
- perf(npmignore): ignore newer files [#13946](https://togithub.com/Automattic/mongoose/issues/13946) [hasezoey](https://togithub.com/hasezoey)
- perf: move mocha config from package.json to mocharc [#13948](https://togithub.com/Automattic/mongoose/issues/13948) [hasezoey](https://togithub.com/hasezoey)
### [`v7.6.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#760--2023-10-06)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.5.4...7.6.0)
\==================
- feat: upgrade mongodb node driver -> 5.9.0 [#13927](https://togithub.com/Automattic/mongoose/issues/13927) [#13926](https://togithub.com/Automattic/mongoose/issues/13926) [sanguineti](https://togithub.com/sanguineti)
- fix: avoid CastError when passing different value of discriminator key in `$or` [#13938](https://togithub.com/Automattic/mongoose/issues/13938) [#13906](https://togithub.com/Automattic/mongoose/issues/13906)
### [`v7.5.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#754--2023-10-04)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.5.3...7.5.4)
\==================
- fix: avoid stripping out `id` property when `_id` is set [#13933](https://togithub.com/Automattic/mongoose/issues/13933) [#13892](https://togithub.com/Automattic/mongoose/issues/13892) [#13867](https://togithub.com/Automattic/mongoose/issues/13867)
- fix(QueryCursor): avoid double-applying schema paths so you can include select: false fields with + projection using cursors [#13932](https://togithub.com/Automattic/mongoose/issues/13932) [#13773](https://togithub.com/Automattic/mongoose/issues/13773)
- fix(query): allow deselecting discriminator key using - syntax [#13929](https://togithub.com/Automattic/mongoose/issues/13929) [#13760](https://togithub.com/Automattic/mongoose/issues/13760)
- fix(query): handle $round in $expr as array [#13928](https://togithub.com/Automattic/mongoose/issues/13928) [#13881](https://togithub.com/Automattic/mongoose/issues/13881)
- fix(document): call pre('validate') hooks when modifying a path underneath triply nested subdoc [#13912](https://togithub.com/Automattic/mongoose/issues/13912) [#13876](https://togithub.com/Automattic/mongoose/issues/13876)
- fix(mongoose): correctly handle global applyPluginsToChildSchemas option [#13911](https://togithub.com/Automattic/mongoose/issues/13911) [#13887](https://togithub.com/Automattic/mongoose/issues/13887)
- types: add insertMany array overload with options [#13931](https://togithub.com/Automattic/mongoose/issues/13931) [t1bb4r](https://togithub.com/t1bb4r)
- docs(compatibility): add Mongoose 7 support to compatibility matrix [#13875](https://togithub.com/Automattic/mongoose/issues/13875)
- docs: amend some awkward FAQ wording [#13925](https://togithub.com/Automattic/mongoose/issues/13925) [peteboere](https://togithub.com/peteboere)
### [`v7.5.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#753--2023-09-25)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.5.2...7.5.3)
\==================
- fix(document): handle MongoDB Long when casting BigInts [#13869](https://togithub.com/Automattic/mongoose/issues/13869) [#13791](https://togithub.com/Automattic/mongoose/issues/13791)
- fix(model): make bulkSave() persist changes that happen in pre('save') middleware [#13885](https://togithub.com/Automattic/mongoose/issues/13885) [#13799](https://togithub.com/Automattic/mongoose/issues/13799)
- fix: handle casting $elemMatch underneath $not underneath another $elemMatch [#13893](https://togithub.com/Automattic/mongoose/issues/13893) [#13880](https://togithub.com/Automattic/mongoose/issues/13880)
- fix(model): make bulkWrite casting respect global setDefaultsOnInsert [#13870](https://togithub.com/Automattic/mongoose/issues/13870) [#13823](https://togithub.com/Automattic/mongoose/issues/13823)
- fix(document): handle default values for discriminator key with embedded discriminators [#13891](https://togithub.com/Automattic/mongoose/issues/13891) [#13835](https://togithub.com/Automattic/mongoose/issues/13835)
- fix: account for null values when assigning isNew property within document array [#13883](https://togithub.com/Automattic/mongoose/issues/13883)
- types: avoid "interface can only extend object types with statically known members" error in TypeScript 4 [#13871](https://togithub.com/Automattic/mongoose/issues/13871)
- docs(deprecations): fix typo in includeResultMetadata deprecation docs [#13884](https://togithub.com/Automattic/mongoose/issues/13884) [#13844](https://togithub.com/Automattic/mongoose/issues/13844)
- docs: fix pre element overflow in home page [#13868](https://togithub.com/Automattic/mongoose/issues/13868) [ghoshRitesh12](https://togithub.com/ghoshRitesh12)
### [`v7.5.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#752--2023-09-15)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.5.1...7.5.2)
\==================
- fix(schema): handle number discriminator keys when using Schema.prototype.discriminator() [#13858](https://togithub.com/Automattic/mongoose/issues/13858) [#13788](https://togithub.com/Automattic/mongoose/issues/13788)
- fix: ignore `id` property when calling `set()` with both `id` and `_id` specified to avoid `id` setter overwriting [#13762](https://togithub.com/Automattic/mongoose/issues/13762)
- types: pass correct document type to required and default function [#13851](https://togithub.com/Automattic/mongoose/issues/13851) [#13797](https://togithub.com/Automattic/mongoose/issues/13797)
- docs(model): add examples of using diffIndexes() to syncIndexes()and diffIndexes() api docs [#13850](https://togithub.com/Automattic/mongoose/issues/13850) [#13771](https://togithub.com/Automattic/mongoose/issues/13771)
### [`v7.5.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#751--2023-09-11)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.5.0...7.5.1)
\==================
- fix: set default value for \_update when no update object is provided and versionKey is set to false [#13795](https://togithub.com/Automattic/mongoose/issues/13795) [#13783](https://togithub.com/Automattic/mongoose/issues/13783) [MohOraby](https://togithub.com/MohOraby)
- fix: avoid unexpected error when accessing null array element on discriminator array when populating [#13716](https://togithub.com/Automattic/mongoose/issues/13716) [ZSabakh](https://togithub.com/ZSabakh)
- types(schematypes): use DocType for instance method this [#13822](https://togithub.com/Automattic/mongoose/issues/13822) [#13800](https://togithub.com/Automattic/mongoose/issues/13800) [pshaddel](https://togithub.com/pshaddel)
- types: remove duplicated 'exists' method in Model interface in models.d.ts [#13818](https://togithub.com/Automattic/mongoose/issues/13818) [ohzeno](https://togithub.com/ohzeno)
- docs(model): replace outdated docs on deprecated findOneAndUpdate() overwrite option [#13821](https://togithub.com/Automattic/mongoose/issues/13821) [#13715](https://togithub.com/Automattic/mongoose/issues/13715)
- docs: add example of using `virtuals.pathsToSkip` option for `toObject()` and `toJSON()` [#13798](https://togithub.com/Automattic/mongoose/issues/13798) [RobertHunter-Pluto](https://togithub.com/RobertHunter-Pluto)
### [`v7.5.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#750--2023-08-29)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.4.5...7.5.0)
\==================
- feat: use mongodb driver v5.18.1
- feat: allow top level dollar keys with findOneAndUpdate(), update() for MongoDB 5 [#13786](https://togithub.com/Automattic/mongoose/issues/13786)
- fix(document): make array getters avoid unintentionally modifying array, defer getters until index access instead [#13774](https://togithub.com/Automattic/mongoose/issues/13774)
- feat: deprecate `overwrite` option for findOneAndUpdate() [#13578](https://togithub.com/Automattic/mongoose/issues/13578)
- feat: add pathsToSkip option for Model.validate [#13663](https://togithub.com/Automattic/mongoose/issues/13663) [#10353](https://togithub.com/Automattic/mongoose/issues/10353)
- feat: support alias when declaring index [#13659](https://togithub.com/Automattic/mongoose/issues/13659) [#13276](https://togithub.com/Automattic/mongoose/issues/13276)
- fix(query): remove unnecessary check for atomic operators in findOneAndReplace() [#13678](https://togithub.com/Automattic/mongoose/issues/13678)
- types: add SearchMeta Interface for Atlas Search [#13792](https://togithub.com/Automattic/mongoose/issues/13792) [mreouven](https://togithub.com/mreouven)
- types(schematypes): add missing BigInt SchemaType [#13787](https://togithub.com/Automattic/mongoose/issues/13787)
### [`v7.4.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#745--2023-08-25)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.4.4...7.4.5)
\==================
- fix(debug): avoid putting virtuals and getters in debug output [#13778](https://togithub.com/Automattic/mongoose/issues/13778)
- fix(model): make Model.bulkWrite() with empty array and ordered false not throw an error [#13664](https://togithub.com/Automattic/mongoose/issues/13664)
- fix(document): correctly handle inclusive/exclusive projections when applying subdocument defaults [#13763](https://togithub.com/Automattic/mongoose/issues/13763) [#13720](https://togithub.com/Automattic/mongoose/issues/13720)
### [`v7.4.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#744--2023-08-22)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.4.3...7.4.4)
\==================
- fix(connection): reset document state in between transaction retries [#13726](https://togithub.com/Automattic/mongoose/issues/13726) [#13698](https://togithub.com/Automattic/mongoose/issues/13698)
- fix(cursor): bubble up resumeTokenChanged event from change streams [#13736](https://togithub.com/Automattic/mongoose/issues/13736) [#13607](https://togithub.com/Automattic/mongoose/issues/13607)
- fix(query+populate): add refPath to projection by default, unless explicitly excluded [#13758](https://togithub.com/Automattic/mongoose/issues/13758)
- fix(schema): support 'ascending', 'asc', 'descending', 'desc' for index direction [#13761](https://togithub.com/Automattic/mongoose/issues/13761) [#13725](https://togithub.com/Automattic/mongoose/issues/13725)
- fix(ChangeStream): add \_bindEvents to addListener function for observable support [#13759](https://togithub.com/Automattic/mongoose/issues/13759) [yury-ivaniutsenka](https://togithub.com/yury-ivaniutsenka)
- types: infer return type when using `get()`, `markModified()`, etc. with known property name literal [#13739](https://togithub.com/Automattic/mongoose/issues/13739) [maybesmurf](https://togithub.com/maybesmurf)
- types: add missing typings for option includeResultMetadata [#13747](https://togithub.com/Automattic/mongoose/issues/13747) [#13746](https://togithub.com/Automattic/mongoose/issues/13746) [Idnan](https://togithub.com/Idnan)
- types: export InferSchemaType [#13737](https://togithub.com/Automattic/mongoose/issues/13737)
- docs(middleware): clarify that query middleware applies to document by default [#13734](https://togithub.com/Automattic/mongoose/issues/13734) [#13713](https://togithub.com/Automattic/mongoose/issues/13713)
- docs: add brief note on TypeScript generic usage for embedded discriminator path() calls [#13728](https://togithub.com/Automattic/mongoose/issues/13728) [#10435](https://togithub.com/Automattic/mongoose/issues/10435)
- docs: link v7 migration guide [#13742](https://togithub.com/Automattic/mongoose/issues/13742) [Cooldogyum](https://togithub.com/Cooldogyum)
- docs(migrating_to\_6): add note about incompatible packages [#13733](https://togithub.com/Automattic/mongoose/issues/13733)
### [`v7.4.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#743--2023-08-11)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.4.2...7.4.3)
\==================
- fix: avoid applying map property getters when saving [#13704](https://togithub.com/Automattic/mongoose/issues/13704) [#13657](https://togithub.com/Automattic/mongoose/issues/13657)
- fix(query): allow deselecting discriminator key [#13722](https://togithub.com/Automattic/mongoose/issues/13722) [#13679](https://togithub.com/Automattic/mongoose/issues/13679)
- types(models+query): return lean type when passing QueryOptions with lean: true to relevant model functions like find() and findOne() [#13721](https://togithub.com/Automattic/mongoose/issues/13721) [#13705](https://togithub.com/Automattic/mongoose/issues/13705)
- types(schema): correct return type for Schema.prototype.indexes() [#13718](https://togithub.com/Automattic/mongoose/issues/13718) [#13702](https://togithub.com/Automattic/mongoose/issues/13702)
- types: allow accessing options from pre middleware [#13708](https://togithub.com/Automattic/mongoose/issues/13708) [#13633](https://togithub.com/Automattic/mongoose/issues/13633)
- types: add UpdateQueryKnownOnly type for stricter UpdateQuery type checking [#13699](https://togithub.com/Automattic/mongoose/issues/13699) [#13630](https://togithub.com/Automattic/mongoose/issues/13630)
- types(schema): support required: { isRequired: true } syntax in schema definition [#13680](https://togithub.com/Automattic/mongoose/issues/13680)
- docs(middleware): clarify that doc.deleteOne() doesn't run query middleware currently [#13707](https://togithub.com/Automattic/mongoose/issues/13707) [#13669](https://togithub.com/Automattic/mongoose/issues/13669)
### [`v7.4.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#742--2023-08-03)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.4.1...7.4.2)
\==================
- fix(model): avoid hanging on empty bulkWrite() with ordered: false [#13684](https://togithub.com/Automattic/mongoose/issues/13684) [#13664](https://togithub.com/Automattic/mongoose/issues/13664)
- fix: Document.prototype.isModified support for a string of keys as first parameter [#13674](https://togithub.com/Automattic/mongoose/issues/13674) [#13667](https://togithub.com/Automattic/mongoose/issues/13667) [gastoncasini](https://togithub.com/gastoncasini)
- fix: disable id virtual if alias:id set [#13654](https://togithub.com/Automattic/mongoose/issues/13654) [#13650](https://togithub.com/Automattic/mongoose/issues/13650)
- fix: support timestamps:false on bulkWrite with updateOne and updateMany [#13649](https://togithub.com/Automattic/mongoose/issues/13649) [#13611](https://togithub.com/Automattic/mongoose/issues/13611)
- docs(typescript): highlight auto type inference for methods and statics, add info on using methods with generics [#13696](https://togithub.com/Automattic/mongoose/issues/13696) [#12942](https://togithub.com/Automattic/mongoose/issues/12942)
- docs(middleware): fix old example using post('remove') [#13683](https://togithub.com/Automattic/mongoose/issues/13683) [#13518](https://togithub.com/Automattic/mongoose/issues/13518)
- docs(deprecations): quick fix for includeResultMetadata docs [#13695](https://togithub.com/Automattic/mongoose/issues/13695)
### [`v7.4.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#741--2023-07-24)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.4.0...7.4.1)
\==================
- fix(document): correctly clean up nested subdocs modified state on save() [#13644](https://togithub.com/Automattic/mongoose/issues/13644) [#13609](https://togithub.com/Automattic/mongoose/issues/13609)
- fix(schema): avoid propagating toObject.transform and toJSON.transform option to implicitly created schemas [#13634](https://togithub.com/Automattic/mongoose/issues/13634) [#13599](https://togithub.com/Automattic/mongoose/issues/13599)
- fix: prevent schema options overwriting user defined writeConcern [#13612](https://togithub.com/Automattic/mongoose/issues/13612) [#13592](https://togithub.com/Automattic/mongoose/issues/13592)
- types: correctly handle pre('deleteOne', { document: true }) [#13632](https://togithub.com/Automattic/mongoose/issues/13632)
- types(schema): handle type: Schema.Types.Map in TypeScript [#13628](https://togithub.com/Automattic/mongoose/issues/13628)
- types: Add inline comment to to tell the default value of the runValidator flag in the queryOptions types [#13636](https://togithub.com/Automattic/mongoose/issues/13636) [omran95](https://togithub.com/omran95)
- docs: rework several code examples that still use callbacks [#13635](https://togithub.com/Automattic/mongoose/issues/13635) [#13616](https://togithub.com/Automattic/mongoose/issues/13616)
- docs: remove callbacks from validation description [#13638](https://togithub.com/Automattic/mongoose/issues/13638) [#13501](https://togithub.com/Automattic/mongoose/issues/13501)
### [`v7.4.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#740--2023-07-18)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.3.4...7.4.0)
\==================
- perf: speed up mapOfSubdocs benchmark by 4x by avoiding unnecessary O(n^2) loop in getPathsToValidate() [#13614](https://togithub.com/Automattic/mongoose/issues/13614)
- feat: upgrade to MongoDB Node.js driver 5.7.0 [#13591](https://togithub.com/Automattic/mongoose/issues/13591)
- feat: support generating custom cast error message with a function [#13608](https://togithub.com/Automattic/mongoose/issues/13608) [#3162](https://togithub.com/Automattic/mongoose/issues/3162)
- feat(query): support MongoDB driver's includeResultMetadata option for findOneAndUpdate [#13584](https://togithub.com/Automattic/mongoose/issues/13584) [#13539](https://togithub.com/Automattic/mongoose/issues/13539)
- feat(connection): add Connection.prototype.removeDb() for removing a related connection [#13580](https://togithub.com/Automattic/mongoose/issues/13580) [#11821](https://togithub.com/Automattic/mongoose/issues/11821)
- feat(query): delay converting documents into POJOs until query execution, allow querying subdocuments with defaults disabled [#13522](https://togithub.com/Automattic/mongoose/issues/13522)
- feat(model): add option "aggregateErrors" for create() [#13544](https://togithub.com/Automattic/mongoose/issues/13544) [hasezoey](https://togithub.com/hasezoey)
- feat(schema): add collectionOptions option to schemas [#13513](https://togithub.com/Automattic/mongoose/issues/13513)
- fix: move all MongoDB-specific connection logic into driver layer, add createClient() method to handle creating MongoClient [#13542](https://togithub.com/Automattic/mongoose/issues/13542)
- fix(document): allow setting keys with dots in mixed paths underneath nested paths [#13536](https://togithub.com/Automattic/mongoose/issues/13536)
- types: augment bson.ObjectId instead of adding on own type [#13515](https://togithub.com/Automattic/mongoose/issues/13515) [#12537](https://togithub.com/Automattic/mongoose/issues/12537) [hasezoey](https://togithub.com/hasezoey)
- docs(guide): fix md lint [#13593](https://togithub.com/Automattic/mongoose/issues/13593) [hasezoey](https://togithub.com/hasezoey)
- docs: changed the code from 'await author.save()' to 'await story1.save()' [#13596](https://togithub.com/Automattic/mongoose/issues/13596) [SomSingh23](https://togithub.com/SomSingh23)
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
7.3.4
->7.8.1
Release Notes
Automattic/mongoose (mongoose)
### [`v7.8.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#781--2024-08-19) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.8.0...7.8.1) \================== - fix(query): handle casting $switch in $expr [#14761](https://togithub.com/Automattic/mongoose/issues/14761) - docs(mongoose): remove out-of-date callback-based example for mongoose.connect() [#14811](https://togithub.com/Automattic/mongoose/issues/14811) [#14810](https://togithub.com/Automattic/mongoose/issues/14810) ### [`v7.8.0`](https://togithub.com/Automattic/mongoose/compare/7.7.0...7.8.0) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.7.0...7.8.0) ### [`v7.7.0`](https://togithub.com/Automattic/mongoose/compare/7.6.13...7.7.0) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.13...7.7.0) ### [`v7.6.13`](https://togithub.com/Automattic/mongoose/compare/7.6.12...7.6.13) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.12...7.6.13) ### [`v7.6.12`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#7612--2024-05-21) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.11...7.6.12) \=================== - fix(array): avoid converting to $set when calling pull() on an element in the middle of the array [#14531](https://togithub.com/Automattic/mongoose/issues/14531) [#14502](https://togithub.com/Automattic/mongoose/issues/14502) - fix: bump mongodb driver to 5.9.2 [#14561](https://togithub.com/Automattic/mongoose/issues/14561) [lorand-horvath](https://togithub.com/lorand-horvath) - fix(update): cast array of strings underneath doc array with array filters [#14605](https://togithub.com/Automattic/mongoose/issues/14605) [#14595](https://togithub.com/Automattic/mongoose/issues/14595) ### [`v7.6.11`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#7611--2024-04-11) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.10...7.6.11) \=================== - fix(populate): avoid match function filtering out null values in populate result [#14518](https://togithub.com/Automattic/mongoose/issues/14518) - fix(schema): support setting discriminator options in Schema.prototype.discriminator() [#14493](https://togithub.com/Automattic/mongoose/issues/14493) [#14448](https://togithub.com/Automattic/mongoose/issues/14448) - fix(schema): deduplicate idGetter so creating multiple models with same schema doesn't result in multiple id getters [#14492](https://togithub.com/Automattic/mongoose/issues/14492) [#14457](https://togithub.com/Automattic/mongoose/issues/14457) ### [`v7.6.10`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#7610--2024-03-13) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.9...7.6.10) \=================== - docs(model): add extra note about lean option for insertMany() skipping casting [#14415](https://togithub.com/Automattic/mongoose/issues/14415) - docs(mongoose): add options.overwriteModel details to mongoose.model() docs [#14422](https://togithub.com/Automattic/mongoose/issues/14422) ### [`v7.6.9`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#769--2024-02-26) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.8...7.6.9) \================== - fix(document): handle embedded recursive discriminators on nested path defined using Schema.prototype.discriminator [#14256](https://togithub.com/Automattic/mongoose/issues/14256) [#14245](https://togithub.com/Automattic/mongoose/issues/14245) - types(model): correct return type for findByIdAndDelete() [#14233](https://togithub.com/Automattic/mongoose/issues/14233) [#14190](https://togithub.com/Automattic/mongoose/issues/14190) - docs(connections): add note about using asPromise() with createConnection() for error handling [#14364](https://togithub.com/Automattic/mongoose/issues/14364) [#14266](https://togithub.com/Automattic/mongoose/issues/14266) - docs(model+query+findoneandupdate): add more details about overwriteDiscriminatorKey option to docs [#14264](https://togithub.com/Automattic/mongoose/issues/14264) [#14246](https://togithub.com/Automattic/mongoose/issues/14246) ### [`v7.6.8`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#768--2024-01-08) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.7...7.6.8) \================== - perf(schema): remove unnecessary lookahead in numeric subpath check - fix(discriminator): handle reusing schema with embedded discriminators defined using Schema.prototype.discriminator [#14202](https://togithub.com/Automattic/mongoose/issues/14202) [#14162](https://togithub.com/Automattic/mongoose/issues/14162) - fix(ChangeStream): avoid suppressing errors in closed change stream [#14206](https://togithub.com/Automattic/mongoose/issues/14206) [#14177](https://togithub.com/Automattic/mongoose/issues/14177) ### [`v7.6.7`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#767--2023-12-06) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.6...7.6.7) \================== - fix: avoid minimizing single nested subdocs if they are required [#14151](https://togithub.com/Automattic/mongoose/issues/14151) [#14058](https://togithub.com/Automattic/mongoose/issues/14058) - fix(populate): allow deselecting discriminator key when populating [#14155](https://togithub.com/Automattic/mongoose/issues/14155) [#3230](https://togithub.com/Automattic/mongoose/issues/3230) - fix: allow adding discriminators using Schema.prototype.discriminator() to subdocuments after defining parent schema [#14131](https://togithub.com/Automattic/mongoose/issues/14131) [#14109](https://togithub.com/Automattic/mongoose/issues/14109) - fix(schema): avoid creating unnecessary clone of schematype in nested array so nested document arrays use correct constructor [#14128](https://togithub.com/Automattic/mongoose/issues/14128) [#14101](https://togithub.com/Automattic/mongoose/issues/14101) - fix(populate): call transform object with single id instead of array when populating a justOne path under an array [#14135](https://togithub.com/Automattic/mongoose/issues/14135) [#14073](https://togithub.com/Automattic/mongoose/issues/14073) - types: add back mistakenly removed findByIdAndRemove() function signature [#14136](https://togithub.com/Automattic/mongoose/issues/14136) [#14132](https://togithub.com/Automattic/mongoose/issues/14132) ### [`v7.6.6`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#766--2023-11-27) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.5...7.6.6) \================== - perf: avoid double-running setter logic when calling `push()` [#14120](https://togithub.com/Automattic/mongoose/issues/14120) [#11380](https://togithub.com/Automattic/mongoose/issues/11380) - fix(populate): set populated docs in correct order when populating virtual underneath doc array with justOne [#14105](https://togithub.com/Automattic/mongoose/issues/14105) [#14018](https://togithub.com/Automattic/mongoose/issues/14018) - fix: bump mongodb driver -> 5.9.1 [#14084](https://togithub.com/Automattic/mongoose/issues/14084) [#13829](https://togithub.com/Automattic/mongoose/issues/13829) [lorand-horvath](https://togithub.com/lorand-horvath) - types: allow defining document array using \[{ prop: String }] syntax [#14095](https://togithub.com/Automattic/mongoose/issues/14095) [#13424](https://togithub.com/Automattic/mongoose/issues/13424) - types: correct types for when includeResultMetadata: true is set [#14078](https://togithub.com/Automattic/mongoose/issues/14078) [#13987](https://togithub.com/Automattic/mongoose/issues/13987) [prathamVaidya](https://togithub.com/prathamVaidya) - types(query): base filters and projections off of RawDocType instead of DocType so autocomplete doesn't show populate [#14118](https://togithub.com/Automattic/mongoose/issues/14118) [#14077](https://togithub.com/Automattic/mongoose/issues/14077) - types: make property names show up in intellisense for UpdateQuery [#14123](https://togithub.com/Automattic/mongoose/issues/14123) [#14090](https://togithub.com/Automattic/mongoose/issues/14090) - types(model): support calling Model.validate() with pathsToSkip option [#14088](https://togithub.com/Automattic/mongoose/issues/14088) [#14003](https://togithub.com/Automattic/mongoose/issues/14003) - docs: remove "DEPRECATED" warning mistakenly added to read() tags param [#13980](https://togithub.com/Automattic/mongoose/issues/13980) ### [`v7.6.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#765--2023-11-14) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.4...7.6.5) \================== - fix: handle update validators and single nested doc with numeric paths [#14066](https://togithub.com/Automattic/mongoose/issues/14066) [#13977](https://togithub.com/Automattic/mongoose/issues/13977) - fix: handle recursive schema array in discriminator definition [#14068](https://togithub.com/Automattic/mongoose/issues/14068) [#14055](https://togithub.com/Automattic/mongoose/issues/14055) - fix: diffIndexes treats namespace error as empty [#14048](https://togithub.com/Automattic/mongoose/issues/14048) [#14029](https://togithub.com/Automattic/mongoose/issues/14029) - docs(migrating_to\_7): add note about requiring new with ObjectId [#14021](https://togithub.com/Automattic/mongoose/issues/14021) [#14020](https://togithub.com/Automattic/mongoose/issues/14020) ### [`v7.6.4`](https://togithub.com/Automattic/mongoose/compare/7.6.3...7.6.4) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.3...7.6.4) ### [`v7.6.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#763--2023-10-17) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.2...7.6.3) \================== - fix(populate): handle multiple spaces when specifying paths to populate using space-delimited paths [#13984](https://togithub.com/Automattic/mongoose/issues/13984) [#13951](https://togithub.com/Automattic/mongoose/issues/13951) - fix(update): avoid applying defaults on query filter when upserting with empty update [#13983](https://togithub.com/Automattic/mongoose/issues/13983) [#13962](https://togithub.com/Automattic/mongoose/issues/13962) - fix(model): add versionKey to bulkWrite when inserting or upserting [#13981](https://togithub.com/Automattic/mongoose/issues/13981) [#13944](https://togithub.com/Automattic/mongoose/issues/13944) - docs: fix typo in timestamps docs [#13976](https://togithub.com/Automattic/mongoose/issues/13976) [danielcoker](https://togithub.com/danielcoker) ### [`v7.6.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#762--2023-10-13) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.1...7.6.2) \================== - perf: avoid storing a separate entry in schema subpaths for every element in an array [#13953](https://togithub.com/Automattic/mongoose/issues/13953) [#13874](https://togithub.com/Automattic/mongoose/issues/13874) - fix(document): avoid triggering setter when initializing Model.prototype.collection to allow defining collection as a schema path name [#13968](https://togithub.com/Automattic/mongoose/issues/13968) [#13956](https://togithub.com/Automattic/mongoose/issues/13956) - fix(model): make bulkSave() save changes in discriminator paths if calling bulkSave() on base model [#13959](https://togithub.com/Automattic/mongoose/issues/13959) [#13907](https://togithub.com/Automattic/mongoose/issues/13907) - fix(document): allow calling $model() with no args for TypeScript [#13963](https://togithub.com/Automattic/mongoose/issues/13963) [#13878](https://togithub.com/Automattic/mongoose/issues/13878) - fix(schema): handle embedded discriminators defined using Schema.prototype.discriminator() [#13958](https://togithub.com/Automattic/mongoose/issues/13958) [#13898](https://togithub.com/Automattic/mongoose/issues/13898) - types(model): make InsertManyResult consistent with return type of insertMany [#13965](https://togithub.com/Automattic/mongoose/issues/13965) [#13904](https://togithub.com/Automattic/mongoose/issues/13904) - types(models): add cleaner type definitions for insertMany() with no generics to prevent errors when using insertMany() in generic classes [#13964](https://togithub.com/Automattic/mongoose/issues/13964) [#13957](https://togithub.com/Automattic/mongoose/issues/13957) - types(schematypes): allow defining map path using type: 'Map' in addition to type: Map [#13960](https://togithub.com/Automattic/mongoose/issues/13960) [#13755](https://togithub.com/Automattic/mongoose/issues/13755) ### [`v7.6.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#761--2023-10-09) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.6.0...7.6.1) \================== - fix: bump bson to match mongodb@5.9.0 exactly [#13947](https://togithub.com/Automattic/mongoose/issues/13947) [hasezoey](https://togithub.com/hasezoey) - fix: raw result deprecation message [#13954](https://togithub.com/Automattic/mongoose/issues/13954) [simllll](https://togithub.com/simllll) - type: add types for includeResultMetadata [#13955](https://togithub.com/Automattic/mongoose/issues/13955) [simllll](https://togithub.com/simllll) - perf(npmignore): ignore newer files [#13946](https://togithub.com/Automattic/mongoose/issues/13946) [hasezoey](https://togithub.com/hasezoey) - perf: move mocha config from package.json to mocharc [#13948](https://togithub.com/Automattic/mongoose/issues/13948) [hasezoey](https://togithub.com/hasezoey) ### [`v7.6.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#760--2023-10-06) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.5.4...7.6.0) \================== - feat: upgrade mongodb node driver -> 5.9.0 [#13927](https://togithub.com/Automattic/mongoose/issues/13927) [#13926](https://togithub.com/Automattic/mongoose/issues/13926) [sanguineti](https://togithub.com/sanguineti) - fix: avoid CastError when passing different value of discriminator key in `$or` [#13938](https://togithub.com/Automattic/mongoose/issues/13938) [#13906](https://togithub.com/Automattic/mongoose/issues/13906) ### [`v7.5.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#754--2023-10-04) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.5.3...7.5.4) \================== - fix: avoid stripping out `id` property when `_id` is set [#13933](https://togithub.com/Automattic/mongoose/issues/13933) [#13892](https://togithub.com/Automattic/mongoose/issues/13892) [#13867](https://togithub.com/Automattic/mongoose/issues/13867) - fix(QueryCursor): avoid double-applying schema paths so you can include select: false fields with + projection using cursors [#13932](https://togithub.com/Automattic/mongoose/issues/13932) [#13773](https://togithub.com/Automattic/mongoose/issues/13773) - fix(query): allow deselecting discriminator key using - syntax [#13929](https://togithub.com/Automattic/mongoose/issues/13929) [#13760](https://togithub.com/Automattic/mongoose/issues/13760) - fix(query): handle $round in $expr as array [#13928](https://togithub.com/Automattic/mongoose/issues/13928) [#13881](https://togithub.com/Automattic/mongoose/issues/13881) - fix(document): call pre('validate') hooks when modifying a path underneath triply nested subdoc [#13912](https://togithub.com/Automattic/mongoose/issues/13912) [#13876](https://togithub.com/Automattic/mongoose/issues/13876) - fix(mongoose): correctly handle global applyPluginsToChildSchemas option [#13911](https://togithub.com/Automattic/mongoose/issues/13911) [#13887](https://togithub.com/Automattic/mongoose/issues/13887) - types: add insertMany array overload with options [#13931](https://togithub.com/Automattic/mongoose/issues/13931) [t1bb4r](https://togithub.com/t1bb4r) - docs(compatibility): add Mongoose 7 support to compatibility matrix [#13875](https://togithub.com/Automattic/mongoose/issues/13875) - docs: amend some awkward FAQ wording [#13925](https://togithub.com/Automattic/mongoose/issues/13925) [peteboere](https://togithub.com/peteboere) ### [`v7.5.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#753--2023-09-25) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.5.2...7.5.3) \================== - fix(document): handle MongoDB Long when casting BigInts [#13869](https://togithub.com/Automattic/mongoose/issues/13869) [#13791](https://togithub.com/Automattic/mongoose/issues/13791) - fix(model): make bulkSave() persist changes that happen in pre('save') middleware [#13885](https://togithub.com/Automattic/mongoose/issues/13885) [#13799](https://togithub.com/Automattic/mongoose/issues/13799) - fix: handle casting $elemMatch underneath $not underneath another $elemMatch [#13893](https://togithub.com/Automattic/mongoose/issues/13893) [#13880](https://togithub.com/Automattic/mongoose/issues/13880) - fix(model): make bulkWrite casting respect global setDefaultsOnInsert [#13870](https://togithub.com/Automattic/mongoose/issues/13870) [#13823](https://togithub.com/Automattic/mongoose/issues/13823) - fix(document): handle default values for discriminator key with embedded discriminators [#13891](https://togithub.com/Automattic/mongoose/issues/13891) [#13835](https://togithub.com/Automattic/mongoose/issues/13835) - fix: account for null values when assigning isNew property within document array [#13883](https://togithub.com/Automattic/mongoose/issues/13883) - types: avoid "interface can only extend object types with statically known members" error in TypeScript 4 [#13871](https://togithub.com/Automattic/mongoose/issues/13871) - docs(deprecations): fix typo in includeResultMetadata deprecation docs [#13884](https://togithub.com/Automattic/mongoose/issues/13884) [#13844](https://togithub.com/Automattic/mongoose/issues/13844) - docs: fix pre element overflow in home page [#13868](https://togithub.com/Automattic/mongoose/issues/13868) [ghoshRitesh12](https://togithub.com/ghoshRitesh12) ### [`v7.5.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#752--2023-09-15) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.5.1...7.5.2) \================== - fix(schema): handle number discriminator keys when using Schema.prototype.discriminator() [#13858](https://togithub.com/Automattic/mongoose/issues/13858) [#13788](https://togithub.com/Automattic/mongoose/issues/13788) - fix: ignore `id` property when calling `set()` with both `id` and `_id` specified to avoid `id` setter overwriting [#13762](https://togithub.com/Automattic/mongoose/issues/13762) - types: pass correct document type to required and default function [#13851](https://togithub.com/Automattic/mongoose/issues/13851) [#13797](https://togithub.com/Automattic/mongoose/issues/13797) - docs(model): add examples of using diffIndexes() to syncIndexes()and diffIndexes() api docs [#13850](https://togithub.com/Automattic/mongoose/issues/13850) [#13771](https://togithub.com/Automattic/mongoose/issues/13771) ### [`v7.5.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#751--2023-09-11) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.5.0...7.5.1) \================== - fix: set default value for \_update when no update object is provided and versionKey is set to false [#13795](https://togithub.com/Automattic/mongoose/issues/13795) [#13783](https://togithub.com/Automattic/mongoose/issues/13783) [MohOraby](https://togithub.com/MohOraby) - fix: avoid unexpected error when accessing null array element on discriminator array when populating [#13716](https://togithub.com/Automattic/mongoose/issues/13716) [ZSabakh](https://togithub.com/ZSabakh) - types(schematypes): use DocType for instance method this [#13822](https://togithub.com/Automattic/mongoose/issues/13822) [#13800](https://togithub.com/Automattic/mongoose/issues/13800) [pshaddel](https://togithub.com/pshaddel) - types: remove duplicated 'exists' method in Model interface in models.d.ts [#13818](https://togithub.com/Automattic/mongoose/issues/13818) [ohzeno](https://togithub.com/ohzeno) - docs(model): replace outdated docs on deprecated findOneAndUpdate() overwrite option [#13821](https://togithub.com/Automattic/mongoose/issues/13821) [#13715](https://togithub.com/Automattic/mongoose/issues/13715) - docs: add example of using `virtuals.pathsToSkip` option for `toObject()` and `toJSON()` [#13798](https://togithub.com/Automattic/mongoose/issues/13798) [RobertHunter-Pluto](https://togithub.com/RobertHunter-Pluto) ### [`v7.5.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#750--2023-08-29) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.4.5...7.5.0) \================== - feat: use mongodb driver v5.18.1 - feat: allow top level dollar keys with findOneAndUpdate(), update() for MongoDB 5 [#13786](https://togithub.com/Automattic/mongoose/issues/13786) - fix(document): make array getters avoid unintentionally modifying array, defer getters until index access instead [#13774](https://togithub.com/Automattic/mongoose/issues/13774) - feat: deprecate `overwrite` option for findOneAndUpdate() [#13578](https://togithub.com/Automattic/mongoose/issues/13578) - feat: add pathsToSkip option for Model.validate [#13663](https://togithub.com/Automattic/mongoose/issues/13663) [#10353](https://togithub.com/Automattic/mongoose/issues/10353) - feat: support alias when declaring index [#13659](https://togithub.com/Automattic/mongoose/issues/13659) [#13276](https://togithub.com/Automattic/mongoose/issues/13276) - fix(query): remove unnecessary check for atomic operators in findOneAndReplace() [#13678](https://togithub.com/Automattic/mongoose/issues/13678) - types: add SearchMeta Interface for Atlas Search [#13792](https://togithub.com/Automattic/mongoose/issues/13792) [mreouven](https://togithub.com/mreouven) - types(schematypes): add missing BigInt SchemaType [#13787](https://togithub.com/Automattic/mongoose/issues/13787) ### [`v7.4.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#745--2023-08-25) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.4.4...7.4.5) \================== - fix(debug): avoid putting virtuals and getters in debug output [#13778](https://togithub.com/Automattic/mongoose/issues/13778) - fix(model): make Model.bulkWrite() with empty array and ordered false not throw an error [#13664](https://togithub.com/Automattic/mongoose/issues/13664) - fix(document): correctly handle inclusive/exclusive projections when applying subdocument defaults [#13763](https://togithub.com/Automattic/mongoose/issues/13763) [#13720](https://togithub.com/Automattic/mongoose/issues/13720) ### [`v7.4.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#744--2023-08-22) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.4.3...7.4.4) \================== - fix(connection): reset document state in between transaction retries [#13726](https://togithub.com/Automattic/mongoose/issues/13726) [#13698](https://togithub.com/Automattic/mongoose/issues/13698) - fix(cursor): bubble up resumeTokenChanged event from change streams [#13736](https://togithub.com/Automattic/mongoose/issues/13736) [#13607](https://togithub.com/Automattic/mongoose/issues/13607) - fix(query+populate): add refPath to projection by default, unless explicitly excluded [#13758](https://togithub.com/Automattic/mongoose/issues/13758) - fix(schema): support 'ascending', 'asc', 'descending', 'desc' for index direction [#13761](https://togithub.com/Automattic/mongoose/issues/13761) [#13725](https://togithub.com/Automattic/mongoose/issues/13725) - fix(ChangeStream): add \_bindEvents to addListener function for observable support [#13759](https://togithub.com/Automattic/mongoose/issues/13759) [yury-ivaniutsenka](https://togithub.com/yury-ivaniutsenka) - types: infer return type when using `get()`, `markModified()`, etc. with known property name literal [#13739](https://togithub.com/Automattic/mongoose/issues/13739) [maybesmurf](https://togithub.com/maybesmurf) - types: add missing typings for option includeResultMetadata [#13747](https://togithub.com/Automattic/mongoose/issues/13747) [#13746](https://togithub.com/Automattic/mongoose/issues/13746) [Idnan](https://togithub.com/Idnan) - types: export InferSchemaType [#13737](https://togithub.com/Automattic/mongoose/issues/13737) - docs(middleware): clarify that query middleware applies to document by default [#13734](https://togithub.com/Automattic/mongoose/issues/13734) [#13713](https://togithub.com/Automattic/mongoose/issues/13713) - docs: add brief note on TypeScript generic usage for embedded discriminator path() calls [#13728](https://togithub.com/Automattic/mongoose/issues/13728) [#10435](https://togithub.com/Automattic/mongoose/issues/10435) - docs: link v7 migration guide [#13742](https://togithub.com/Automattic/mongoose/issues/13742) [Cooldogyum](https://togithub.com/Cooldogyum) - docs(migrating_to\_6): add note about incompatible packages [#13733](https://togithub.com/Automattic/mongoose/issues/13733) ### [`v7.4.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#743--2023-08-11) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.4.2...7.4.3) \================== - fix: avoid applying map property getters when saving [#13704](https://togithub.com/Automattic/mongoose/issues/13704) [#13657](https://togithub.com/Automattic/mongoose/issues/13657) - fix(query): allow deselecting discriminator key [#13722](https://togithub.com/Automattic/mongoose/issues/13722) [#13679](https://togithub.com/Automattic/mongoose/issues/13679) - types(models+query): return lean type when passing QueryOptions with lean: true to relevant model functions like find() and findOne() [#13721](https://togithub.com/Automattic/mongoose/issues/13721) [#13705](https://togithub.com/Automattic/mongoose/issues/13705) - types(schema): correct return type for Schema.prototype.indexes() [#13718](https://togithub.com/Automattic/mongoose/issues/13718) [#13702](https://togithub.com/Automattic/mongoose/issues/13702) - types: allow accessing options from pre middleware [#13708](https://togithub.com/Automattic/mongoose/issues/13708) [#13633](https://togithub.com/Automattic/mongoose/issues/13633) - types: add UpdateQueryKnownOnly type for stricter UpdateQuery type checking [#13699](https://togithub.com/Automattic/mongoose/issues/13699) [#13630](https://togithub.com/Automattic/mongoose/issues/13630) - types(schema): support required: { isRequired: true } syntax in schema definition [#13680](https://togithub.com/Automattic/mongoose/issues/13680) - docs(middleware): clarify that doc.deleteOne() doesn't run query middleware currently [#13707](https://togithub.com/Automattic/mongoose/issues/13707) [#13669](https://togithub.com/Automattic/mongoose/issues/13669) ### [`v7.4.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#742--2023-08-03) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.4.1...7.4.2) \================== - fix(model): avoid hanging on empty bulkWrite() with ordered: false [#13684](https://togithub.com/Automattic/mongoose/issues/13684) [#13664](https://togithub.com/Automattic/mongoose/issues/13664) - fix: Document.prototype.isModified support for a string of keys as first parameter [#13674](https://togithub.com/Automattic/mongoose/issues/13674) [#13667](https://togithub.com/Automattic/mongoose/issues/13667) [gastoncasini](https://togithub.com/gastoncasini) - fix: disable id virtual if alias:id set [#13654](https://togithub.com/Automattic/mongoose/issues/13654) [#13650](https://togithub.com/Automattic/mongoose/issues/13650) - fix: support timestamps:false on bulkWrite with updateOne and updateMany [#13649](https://togithub.com/Automattic/mongoose/issues/13649) [#13611](https://togithub.com/Automattic/mongoose/issues/13611) - docs(typescript): highlight auto type inference for methods and statics, add info on using methods with generics [#13696](https://togithub.com/Automattic/mongoose/issues/13696) [#12942](https://togithub.com/Automattic/mongoose/issues/12942) - docs(middleware): fix old example using post('remove') [#13683](https://togithub.com/Automattic/mongoose/issues/13683) [#13518](https://togithub.com/Automattic/mongoose/issues/13518) - docs(deprecations): quick fix for includeResultMetadata docs [#13695](https://togithub.com/Automattic/mongoose/issues/13695) ### [`v7.4.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#741--2023-07-24) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.4.0...7.4.1) \================== - fix(document): correctly clean up nested subdocs modified state on save() [#13644](https://togithub.com/Automattic/mongoose/issues/13644) [#13609](https://togithub.com/Automattic/mongoose/issues/13609) - fix(schema): avoid propagating toObject.transform and toJSON.transform option to implicitly created schemas [#13634](https://togithub.com/Automattic/mongoose/issues/13634) [#13599](https://togithub.com/Automattic/mongoose/issues/13599) - fix: prevent schema options overwriting user defined writeConcern [#13612](https://togithub.com/Automattic/mongoose/issues/13612) [#13592](https://togithub.com/Automattic/mongoose/issues/13592) - types: correctly handle pre('deleteOne', { document: true }) [#13632](https://togithub.com/Automattic/mongoose/issues/13632) - types(schema): handle type: Schema.Types.Map in TypeScript [#13628](https://togithub.com/Automattic/mongoose/issues/13628) - types: Add inline comment to to tell the default value of the runValidator flag in the queryOptions types [#13636](https://togithub.com/Automattic/mongoose/issues/13636) [omran95](https://togithub.com/omran95) - docs: rework several code examples that still use callbacks [#13635](https://togithub.com/Automattic/mongoose/issues/13635) [#13616](https://togithub.com/Automattic/mongoose/issues/13616) - docs: remove callbacks from validation description [#13638](https://togithub.com/Automattic/mongoose/issues/13638) [#13501](https://togithub.com/Automattic/mongoose/issues/13501) ### [`v7.4.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#740--2023-07-18) [Compare Source](https://togithub.com/Automattic/mongoose/compare/7.3.4...7.4.0) \================== - perf: speed up mapOfSubdocs benchmark by 4x by avoiding unnecessary O(n^2) loop in getPathsToValidate() [#13614](https://togithub.com/Automattic/mongoose/issues/13614) - feat: upgrade to MongoDB Node.js driver 5.7.0 [#13591](https://togithub.com/Automattic/mongoose/issues/13591) - feat: support generating custom cast error message with a function [#13608](https://togithub.com/Automattic/mongoose/issues/13608) [#3162](https://togithub.com/Automattic/mongoose/issues/3162) - feat(query): support MongoDB driver's includeResultMetadata option for findOneAndUpdate [#13584](https://togithub.com/Automattic/mongoose/issues/13584) [#13539](https://togithub.com/Automattic/mongoose/issues/13539) - feat(connection): add Connection.prototype.removeDb() for removing a related connection [#13580](https://togithub.com/Automattic/mongoose/issues/13580) [#11821](https://togithub.com/Automattic/mongoose/issues/11821) - feat(query): delay converting documents into POJOs until query execution, allow querying subdocuments with defaults disabled [#13522](https://togithub.com/Automattic/mongoose/issues/13522) - feat(model): add option "aggregateErrors" for create() [#13544](https://togithub.com/Automattic/mongoose/issues/13544) [hasezoey](https://togithub.com/hasezoey) - feat(schema): add collectionOptions option to schemas [#13513](https://togithub.com/Automattic/mongoose/issues/13513) - fix: move all MongoDB-specific connection logic into driver layer, add createClient() method to handle creating MongoClient [#13542](https://togithub.com/Automattic/mongoose/issues/13542) - fix(document): allow setting keys with dots in mixed paths underneath nested paths [#13536](https://togithub.com/Automattic/mongoose/issues/13536) - types: augment bson.ObjectId instead of adding on own type [#13515](https://togithub.com/Automattic/mongoose/issues/13515) [#12537](https://togithub.com/Automattic/mongoose/issues/12537) [hasezoey](https://togithub.com/hasezoey) - docs(guide): fix md lint [#13593](https://togithub.com/Automattic/mongoose/issues/13593) [hasezoey](https://togithub.com/hasezoey) - docs: changed the code from 'await author.save()' to 'await story1.save()' [#13596](https://togithub.com/Automattic/mongoose/issues/13596) [SomSingh23](https://togithub.com/SomSingh23)Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.