Automattic/mongoose (mongoose)
### [`v8.6.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#860--2024-08-28)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.5.5...8.6.0)
\==================
- feat: upgrade mongodb -> 6.8.0, handle throwing error on closed cursor in Mongoose with `MongooseError` instead of `MongoCursorExhaustedError` [#14813](https://togithub.com/Automattic/mongoose/issues/14813)
- feat(model+query): support options parameter for distinct() [#14772](https://togithub.com/Automattic/mongoose/issues/14772) [#8006](https://togithub.com/Automattic/mongoose/issues/8006)
- feat(QueryCursor): add getDriverCursor() function that returns the raw driver cursor [#14745](https://togithub.com/Automattic/mongoose/issues/14745)
- types: change query selector to disallow unknown top-level keys by default [#14764](https://togithub.com/Automattic/mongoose/issues/14764) [alex-statsig](https://togithub.com/alex-statsig)
- types: make toObject() and toJSON() not generic by default to avoid type widening [#14819](https://togithub.com/Automattic/mongoose/issues/14819) [#12883](https://togithub.com/Automattic/mongoose/issues/12883)
- types: avoid automatically inferring lean result type when assigning to explicitly typed variable [#14734](https://togithub.com/Automattic/mongoose/issues/14734)
### [`v8.5.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#855--2024-08-28)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.5.4...8.5.5)
\==================
- fix(populate): fix a couple of other places where Mongoose gets the document's \_id with getters [#14833](https://togithub.com/Automattic/mongoose/issues/14833) [#14827](https://togithub.com/Automattic/mongoose/issues/14827) [#14759](https://togithub.com/Automattic/mongoose/issues/14759)
- fix(discriminator): shallow clone Schema.prototype.obj before merging schemas to avoid modifying original obj [#14821](https://togithub.com/Automattic/mongoose/issues/14821)
- types: fix schema type based on timestamps schema options value [#14829](https://togithub.com/Automattic/mongoose/issues/14829) [#14825](https://togithub.com/Automattic/mongoose/issues/14825) [ark23CIS](https://togithub.com/ark23CIS)
### [`v8.5.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#854--2024-08-23)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.5.3...8.5.4)
\==================
- fix: add empty string check for collection name passed [#14806](https://togithub.com/Automattic/mongoose/issues/14806) [Shubham2552](https://togithub.com/Shubham2552)
- docs(model): add 'throw' as valid strict value for bulkWrite() and add some more clarification on throwOnValidationError [#14809](https://togithub.com/Automattic/mongoose/issues/14809)
### [`v8.5.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#853--2024-08-13)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.5.2...8.5.3)
\==================
- fix(document): call required functions on subdocuments underneath nested paths with correct context [#14801](https://togithub.com/Automattic/mongoose/issues/14801) [#14788](https://togithub.com/Automattic/mongoose/issues/14788)
- fix(populate): avoid throwing error when no result and `lean()` set [#14799](https://togithub.com/Automattic/mongoose/issues/14799) [#14794](https://togithub.com/Automattic/mongoose/issues/14794) [#14759](https://togithub.com/Automattic/mongoose/issues/14759) [MohOraby](https://togithub.com/MohOraby)
- fix(document): apply virtuals to subdocuments if parent schema has virtuals: true for backwards compatibility [#14774](https://togithub.com/Automattic/mongoose/issues/14774) [#14771](https://togithub.com/Automattic/mongoose/issues/14771) [#14623](https://togithub.com/Automattic/mongoose/issues/14623) [#14394](https://togithub.com/Automattic/mongoose/issues/14394)
- types: make HydratedSingleSubdocument and HydratedArraySubdocument merge types instead of using & [#14800](https://togithub.com/Automattic/mongoose/issues/14800) [#14793](https://togithub.com/Automattic/mongoose/issues/14793)
- types: support schema type inference based on schema options timestamps as well [#14773](https://togithub.com/Automattic/mongoose/issues/14773) [#13215](https://togithub.com/Automattic/mongoose/issues/13215) [ark23CIS](https://togithub.com/ark23CIS)
- types(cursor): indicate that cursor.next() can return null [#14798](https://togithub.com/Automattic/mongoose/issues/14798) [#14787](https://togithub.com/Automattic/mongoose/issues/14787)
- types: allow mongoose.connection.db to be undefined [#14797](https://togithub.com/Automattic/mongoose/issues/14797) [#14789](https://togithub.com/Automattic/mongoose/issues/14789)
- docs: add schema type widening advice [#14790](https://togithub.com/Automattic/mongoose/issues/14790) [JstnMcBrd](https://togithub.com/JstnMcBrd)
### [`v8.5.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#852--2024-07-30)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.5.1...8.5.2)
\==================
- perf(clone): avoid further unnecessary checks if cloning a primitive value [#14762](https://togithub.com/Automattic/mongoose/issues/14762) [#14394](https://togithub.com/Automattic/mongoose/issues/14394)
- fix: allow setting document array default to null [#14769](https://togithub.com/Automattic/mongoose/issues/14769) [#14717](https://togithub.com/Automattic/mongoose/issues/14717) [#6691](https://togithub.com/Automattic/mongoose/issues/6691)
- fix(model): support session: null option for save() to opt out of automatic session option with transactionAsyncLocalStorage [#14744](https://togithub.com/Automattic/mongoose/issues/14744) [#14736](https://togithub.com/Automattic/mongoose/issues/14736)
- fix(model+document): avoid depopulating manually populated doc as getter value [#14760](https://togithub.com/Automattic/mongoose/issues/14760) [#14759](https://togithub.com/Automattic/mongoose/issues/14759)
- fix: correct shardkey access in buildBulkWriteOps [#14753](https://togithub.com/Automattic/mongoose/issues/14753) [#14752](https://togithub.com/Automattic/mongoose/issues/14752) [adf0nt3s](https://togithub.com/adf0nt3s)
- fix(query): handle casting $switch in $expr [#14755](https://togithub.com/Automattic/mongoose/issues/14755) [#14751](https://togithub.com/Automattic/mongoose/issues/14751)
- types: allow calling SchemaType.cast() without parent and init parameters [#14756](https://togithub.com/Automattic/mongoose/issues/14756) [#14748](https://togithub.com/Automattic/mongoose/issues/14748) [#9076](https://togithub.com/Automattic/mongoose/issues/9076)
- docs: fix a wrong example in v6 migration guide [#14758](https://togithub.com/Automattic/mongoose/issues/14758) [abdelrahman-elkady](https://togithub.com/abdelrahman-elkady)
### [`v8.5.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#851--2024-07-12)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.5.0...8.5.1)
\==================
- perf(model): performance improvements for insertMany() [#14724](https://togithub.com/Automattic/mongoose/issues/14724)
- fix(model): avoid leaving subdoc defaults on top-level doc when setting subdocument to same value [#14728](https://togithub.com/Automattic/mongoose/issues/14728) [#14722](https://togithub.com/Automattic/mongoose/issues/14722)
- fix(model): handle transactionAsyncLocalStorage option with insertMany() [#14743](https://togithub.com/Automattic/mongoose/issues/14743)
- types: make \_id required on Document type [#14735](https://togithub.com/Automattic/mongoose/issues/14735) [#14660](https://togithub.com/Automattic/mongoose/issues/14660)
- types: fix ChangeStream.close to return a Promise like the driver [#14740](https://togithub.com/Automattic/mongoose/issues/14740) [orgads](https://togithub.com/orgads)
### [`v8.5.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#850--2024-07-08)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.4.5...8.5.0)
\==================
- perf: memoize toJSON / toObject default options [#14672](https://togithub.com/Automattic/mongoose/issues/14672)
- feat(document): add $createModifiedPathsSnapshot(), $restoreModifiedPathsSnapshot(), $clearModifiedPaths() [#14699](https://togithub.com/Automattic/mongoose/issues/14699) [#14268](https://togithub.com/Automattic/mongoose/issues/14268)
- feat(query): make sanitizeProjection prevent projecting in paths deselected in the schema [#14691](https://togithub.com/Automattic/mongoose/issues/14691)
- feat: allow setting array default value to null [#14717](https://togithub.com/Automattic/mongoose/issues/14717) [#6691](https://togithub.com/Automattic/mongoose/issues/6691)
- feat(mongoose): allow drivers to set global plugins [#14682](https://togithub.com/Automattic/mongoose/issues/14682)
- feat(connection): bubble up monitorCommands events to Mongoose connection if monitorCommands option set [#14681](https://togithub.com/Automattic/mongoose/issues/14681) [#14611](https://togithub.com/Automattic/mongoose/issues/14611)
- fix(document): ensure post('deleteOne') hooks are called when calling save() after subdoc.deleteOne() [#14732](https://togithub.com/Automattic/mongoose/issues/14732) [#9885](https://togithub.com/Automattic/mongoose/issues/9885)
- fix(query): remove count() and findOneAndRemove() from query chaining [#14692](https://togithub.com/Automattic/mongoose/issues/14692) [#14689](https://togithub.com/Automattic/mongoose/issues/14689)
- fix: remove default connection if setting createInitialConnection to false after Mongoose instance created [#14679](https://togithub.com/Automattic/mongoose/issues/14679) [#8302](https://togithub.com/Automattic/mongoose/issues/8302)
- types(models+query): infer return type from schema for 1-level deep nested paths [#14632](https://togithub.com/Automattic/mongoose/issues/14632)
- types(connection): make transaction() return type match the executor function [#14661](https://togithub.com/Automattic/mongoose/issues/14661) [#14656](https://togithub.com/Automattic/mongoose/issues/14656)
- docs: fix docs links in index.md [mirasayon](https://togithub.com/mirasayon)
### [`v8.4.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#845--2024-07-05)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.4.4...8.4.5)
\==================
- types: correct this for validate.validator schematype option [#14720](https://togithub.com/Automattic/mongoose/issues/14720) [#14696](https://togithub.com/Automattic/mongoose/issues/14696)
- docs(model): note that insertMany() with lean skips applying defaults [#14723](https://togithub.com/Automattic/mongoose/issues/14723) [#14698](https://togithub.com/Automattic/mongoose/issues/14698)
### [`v8.4.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#844--2024-06-25)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.4.3...8.4.4)
\==================
- perf: avoid unnecesary get() call and use faster approach for converting to string [#14673](https://togithub.com/Automattic/mongoose/issues/14673) [#14394](https://togithub.com/Automattic/mongoose/issues/14394)
- fix(projection): handle projections on arrays in Model.hydrate() projection option [#14686](https://togithub.com/Automattic/mongoose/issues/14686) [#14680](https://togithub.com/Automattic/mongoose/issues/14680)
- fix(document): avoid passing validateModifiedOnly to subdocs so subdocs get fully validating if they're directly modified [#14685](https://togithub.com/Automattic/mongoose/issues/14685) [#14677](https://togithub.com/Automattic/mongoose/issues/14677)
- fix: handle casting primitive array with $elemMatch in bulkWrite() [#14687](https://togithub.com/Automattic/mongoose/issues/14687) [#14678](https://togithub.com/Automattic/mongoose/issues/14678)
- fix(query): cast $pull using embedded discriminator schema when discriminator key is set in filter [#14676](https://togithub.com/Automattic/mongoose/issues/14676) [#14675](https://togithub.com/Automattic/mongoose/issues/14675)
- types(connection): fix return type of withSession() [#14690](https://togithub.com/Automattic/mongoose/issues/14690) [tt-public](https://togithub.com/tt-public)
- types: add $documents pipeline stage and fix $unionWith type [#14666](https://togithub.com/Automattic/mongoose/issues/14666) [nick-statsig](https://togithub.com/nick-statsig)
- docs(findoneandupdate): improve example that shows findOneAndUpdate() returning doc before updates were applied [#14671](https://togithub.com/Automattic/mongoose/issues/14671) [#14670](https://togithub.com/Automattic/mongoose/issues/14670)
### [`v8.4.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#843--2024-06-17)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.4.2...8.4.3)
\==================
- fix: remove 0x flamegraph files from release
### [`v8.4.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#842--2024-06-17)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.4.1...8.4.2)
\==================
- perf: more toObject() perf improvements [#14623](https://togithub.com/Automattic/mongoose/issues/14623) [#14606](https://togithub.com/Automattic/mongoose/issues/14606) [#14394](https://togithub.com/Automattic/mongoose/issues/14394)
- fix(model): check the value of overwriteModels in options when calling discriminator() [#14646](https://togithub.com/Automattic/mongoose/issues/14646) [uditha-g](https://togithub.com/uditha-g)
- fix: avoid throwing TypeError when deleting an null entry on a populated Map [#14654](https://togithub.com/Automattic/mongoose/issues/14654) [futurliberta](https://togithub.com/futurliberta)
- fix(connection): fix up some inconsistencies in operation-end event and add to docs [#14659](https://togithub.com/Automattic/mongoose/issues/14659) [#14648](https://togithub.com/Automattic/mongoose/issues/14648)
- types: avoid inferring Boolean, Buffer, ObjectId as Date in schema definitions under certain circumstances [#14667](https://togithub.com/Automattic/mongoose/issues/14667) [#14630](https://togithub.com/Automattic/mongoose/issues/14630)
- docs: add note about parallelism in transations [#14647](https://togithub.com/Automattic/mongoose/issues/14647) [fiws](https://togithub.com/fiws)
### [`v8.4.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#841--2024-05-31)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.4.0...8.4.1)
\==================
- fix: pass options to clone instead of get in applyVirtuals [#14606](https://togithub.com/Automattic/mongoose/issues/14606) [#14543](https://togithub.com/Automattic/mongoose/issues/14543) [andrews05](https://togithub.com/andrews05)
- fix(document): fire pre validate hooks on 5 level deep single nested subdoc when modifying after save() [#14604](https://togithub.com/Automattic/mongoose/issues/14604) [#14591](https://togithub.com/Automattic/mongoose/issues/14591)
- fix: ensure buildBulkWriteOperations target shard if shardKey is set [#14622](https://togithub.com/Automattic/mongoose/issues/14622) [#14621](https://togithub.com/Automattic/mongoose/issues/14621) [matlpriceshape](https://togithub.com/matlpriceshape)
- types: pass DocType down to subdocuments so HydratedSingleSubdocument and HydratedArraySubdocument toObject() returns correct type [#14612](https://togithub.com/Automattic/mongoose/issues/14612) [#14601](https://togithub.com/Automattic/mongoose/issues/14601)
### [`v8.4.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#840--2024-05-17)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.3.5...8.4.0)
\==================
- feat: upgrade mongodb -> 6.6.2 [#14584](https://togithub.com/Automattic/mongoose/issues/14584)
- feat: add transactionAsyncLocalStorage option to opt in to automatically setting session on all transactions [#14583](https://togithub.com/Automattic/mongoose/issues/14583) [#13889](https://togithub.com/Automattic/mongoose/issues/13889)
- feat: handle initially null driver when instantiating Mongoose for Rollup support [#14577](https://togithub.com/Automattic/mongoose/issues/14577) [#12335](https://togithub.com/Automattic/mongoose/issues/12335)
- feat(mongoose): export omitUndefined() helper [#14582](https://togithub.com/Automattic/mongoose/issues/14582) [#14569](https://togithub.com/Automattic/mongoose/issues/14569)
- feat: add Model.listSearchIndexes() [#14519](https://togithub.com/Automattic/mongoose/issues/14519) [#14450](https://togithub.com/Automattic/mongoose/issues/14450)
- feat(connection): add listDatabases() function [#14506](https://togithub.com/Automattic/mongoose/issues/14506) [#9048](https://togithub.com/Automattic/mongoose/issues/9048)
- feat(schema): add schema-level readConcern option to apply default readConcern for all queries [#14579](https://togithub.com/Automattic/mongoose/issues/14579) [#14511](https://togithub.com/Automattic/mongoose/issues/14511)
- fix(error): remove model property from CastError to avoid printing all model properties to console [#14568](https://togithub.com/Automattic/mongoose/issues/14568) [#14529](https://togithub.com/Automattic/mongoose/issues/14529)
- fix(model): make bulkWrite() and insertMany() throw if throwOnValidationError set and all ops invalid [#14587](https://togithub.com/Automattic/mongoose/issues/14587) [#14572](https://togithub.com/Automattic/mongoose/issues/14572)
- fix(document): ensure transform function passed to toObject() options applies to subdocs [#14600](https://togithub.com/Automattic/mongoose/issues/14600) [#14589](https://togithub.com/Automattic/mongoose/issues/14589)
- types: add inferRawDocType helper [#13900](https://togithub.com/Automattic/mongoose/issues/13900) [#13772](https://togithub.com/Automattic/mongoose/issues/13772)
- types(document): make document \_id type default to unknown instead of any [#14541](https://togithub.com/Automattic/mongoose/issues/14541)
### [`v8.3.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#835--2024-05-15)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.3.4...8.3.5)
\==================
- fix(query): shallow clone $or, $and if merging onto empty query filter [#14580](https://togithub.com/Automattic/mongoose/issues/14580) [#14567](https://togithub.com/Automattic/mongoose/issues/14567)
- types(model+query): pass TInstanceMethods to QueryWithHelpers so populated docs have methods [#14581](https://togithub.com/Automattic/mongoose/issues/14581) [#14574](https://togithub.com/Automattic/mongoose/issues/14574)
- docs(typescript): clarify that setting THydratedDocumentType on schemas is necessary for correct method context [#14575](https://togithub.com/Automattic/mongoose/issues/14575) [#14573](https://togithub.com/Automattic/mongoose/issues/14573)
### [`v8.3.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#834--2024-05-06)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.3.3...8.3.4)
\==================
- perf(document): avoid cloning options using spread operator for perf reasons [#14565](https://togithub.com/Automattic/mongoose/issues/14565) [#14394](https://togithub.com/Automattic/mongoose/issues/14394)
- fix(query): apply translateAliases before casting to avoid strictMode error when using aliases [#14562](https://togithub.com/Automattic/mongoose/issues/14562) [#14521](https://togithub.com/Automattic/mongoose/issues/14521)
- fix(model): consistent top-level timestamps option for bulkWrite operations
[#14546](https://togithub.com/Automattic/mongoose/issues/14546) [#14536](https://togithub.com/Automattic/mongoose/issues/14536)
- docs(connections): improve description of connection creation patterns [#14564](https://togithub.com/Automattic/mongoose/issues/14564) [#14528](https://togithub.com/Automattic/mongoose/issues/14528)
### [`v8.3.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#833--2024-04-29)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.3.2...8.3.3)
\==================
- perf(document): add fast path for applying non-nested virtuals to JSON [#14543](https://togithub.com/Automattic/mongoose/issues/14543)
- fix: make hydrate() recursively hydrate virtual populate docs if hydratedPopulatedDocs is set [#14533](https://togithub.com/Automattic/mongoose/issues/14533) [#14503](https://togithub.com/Automattic/mongoose/issues/14503)
- fix: improve timestamps option handling in bulkWrite [#14546](https://togithub.com/Automattic/mongoose/issues/14546) [#14536](https://togithub.com/Automattic/mongoose/issues/14536) [sderrow](https://togithub.com/sderrow)
- fix(model): make recompileSchema() overwrite existing document array discriminators [#14527](https://togithub.com/Automattic/mongoose/issues/14527)
- types(schema): correctly infer Array\ [#14534](https://togithub.com/Automattic/mongoose/issues/14534) [#14367](https://togithub.com/Automattic/mongoose/issues/14367)
- types(query+populate): apply populate overrides to doc toObject() result [#14525](https://togithub.com/Automattic/mongoose/issues/14525) [#14441](https://togithub.com/Automattic/mongoose/issues/14441)
- types: add null to select override return type for findOne [#14545](https://togithub.com/Automattic/mongoose/issues/14545) [sderrow](https://togithub.com/sderrow)
### [`v8.3.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#832--2024-04-16)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.3.1...8.3.2)
\==================
- fix(populate): avoid match function filtering out null values in populate result [#14518](https://togithub.com/Automattic/mongoose/issues/14518) [#14494](https://togithub.com/Automattic/mongoose/issues/14494)
- types(query): make FilterQuery props resolve to any for generics support [#14510](https://togithub.com/Automattic/mongoose/issues/14510) [#14473](https://togithub.com/Automattic/mongoose/issues/14473) [#14459](https://togithub.com/Automattic/mongoose/issues/14459)
- types(DocumentArray): pass DocType generic to Document for correct toJSON() and toObject() return types [#14526](https://togithub.com/Automattic/mongoose/issues/14526) [#14469](https://togithub.com/Automattic/mongoose/issues/14469)
- types(models): fix incorrect bulk write options [#14513](https://togithub.com/Automattic/mongoose/issues/14513) [emiljanitzek](https://togithub.com/emiljanitzek)
- docs: add documentation for calling schema.post() with async function [#14514](https://togithub.com/Automattic/mongoose/issues/14514) [#14305](https://togithub.com/Automattic/mongoose/issues/14305)
### [`v8.3.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#831--2024-04-08)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.3.0...8.3.1)
\==================
- fix(document): make update minimization unset property rather than setting to null [#14504](https://togithub.com/Automattic/mongoose/issues/14504) [#14445](https://togithub.com/Automattic/mongoose/issues/14445)
- fix(model): make Model.recompileSchema() also re-apply discriminators [#14500](https://togithub.com/Automattic/mongoose/issues/14500) [#14444](https://togithub.com/Automattic/mongoose/issues/14444)
- 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)
- fix: update kareem -> 2.6.3 for index.d.ts [#14508](https://togithub.com/Automattic/mongoose/issues/14508) [#14497](https://togithub.com/Automattic/mongoose/issues/14497)
- fix(mongoose): make setDriver() update mongoose.model() connections and collections [#14505](https://togithub.com/Automattic/mongoose/issues/14505)
- types(validation): support function for validator message property, and add support for accessing validator reason [#14499](https://togithub.com/Automattic/mongoose/issues/14499) [#14496](https://togithub.com/Automattic/mongoose/issues/14496)
- docs: remove typo [#14501](https://togithub.com/Automattic/mongoose/issues/14501) [epmartini](https://togithub.com/epmartini)
### [`v8.3.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#830--2024-04-03)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.2.4...8.3.0)
\==================
- feat(document): add validateAllPaths option to validate() and validateSync() [#14467](https://togithub.com/Automattic/mongoose/issues/14467) [#14414](https://togithub.com/Automattic/mongoose/issues/14414)
- feat: pathsToSave option to save() function [#14385](https://togithub.com/Automattic/mongoose/issues/14385) [#9583](https://togithub.com/Automattic/mongoose/issues/9583)
- feat(query): add options parameter to Query.prototype.sort() [#14375](https://togithub.com/Automattic/mongoose/issues/14375) [#14365](https://togithub.com/Automattic/mongoose/issues/14365)
- feat: add function SchemaType.prototype.validateAll [#14434](https://togithub.com/Automattic/mongoose/issues/14434) [#6910](https://togithub.com/Automattic/mongoose/issues/6910)
- fix: handle array schema definitions with of keyword [#14447](https://togithub.com/Automattic/mongoose/issues/14447) [#14416](https://togithub.com/Automattic/mongoose/issues/14416)
- types: add overwriteMiddlewareResult and skipMiddlewareFunction to types [#14328](https://togithub.com/Automattic/mongoose/issues/14328) [#14829](https://togithub.com/Automattic/mongoose/issues/14829)
### [`v8.2.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#824--2024-03-28)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.2.3...8.2.4)
\==================
- types(query): bring "getFilter" and "getQuery" in-line with "find" and other types [#14463](https://togithub.com/Automattic/mongoose/issues/14463) [noseworthy](https://togithub.com/noseworthy)
- types(schema): re-export the defintion for SearchIndexDescription [#14464](https://togithub.com/Automattic/mongoose/issues/14464)
- docs: removed unused hook from docs [#14461](https://togithub.com/Automattic/mongoose/issues/14461) [bernardarhia](https://togithub.com/bernardarhia)
### [`v8.2.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#823--2024-03-21)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.2.2...8.2.3)
\==================
- fix(schema): avoid returning string 'nested' as schematype [#14453](https://togithub.com/Automattic/mongoose/issues/14453) [#14443](https://togithub.com/Automattic/mongoose/issues/14443) [#14435](https://togithub.com/Automattic/mongoose/issues/14435)
- types(schema): add missing search index types [#14449](https://togithub.com/Automattic/mongoose/issues/14449) [noseworthy](https://togithub.com/noseworthy)
- types: improve the typing of FilterQuery type to prevent it from only getting typed to any [#14436](https://togithub.com/Automattic/mongoose/issues/14436) [#14398](https://togithub.com/Automattic/mongoose/issues/14398) [#14397](https://togithub.com/Automattic/mongoose/issues/14397)
### [`v8.2.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#822--2024-03-15)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.2.1...8.2.2)
\==================
- fix(model): improve update minimizing to only minimize top-level properties in the update [#14437](https://togithub.com/Automattic/mongoose/issues/14437) [#14420](https://togithub.com/Automattic/mongoose/issues/14420) [#13782](https://togithub.com/Automattic/mongoose/issues/13782)
- fix: add Null check in case schema.options\['type']\[0] is undefined [#14431](https://togithub.com/Automattic/mongoose/issues/14431) [Atharv-Bobde](https://togithub.com/Atharv-Bobde)
- types: consistently infer array of objects in schema as a DocumentArray [#14430](https://togithub.com/Automattic/mongoose/issues/14430) [#14367](https://togithub.com/Automattic/mongoose/issues/14367)
- types: add TypeScript interface for the new PipelineStage - Vector Search - solving issue [#14428](https://togithub.com/Automattic/mongoose/issues/14428) [#14429](https://togithub.com/Automattic/mongoose/issues/14429) [jkorach](https://togithub.com/jkorach)
- types: add pre and post function types on Query class [#14433](https://togithub.com/Automattic/mongoose/issues/14433) [#14432](https://togithub.com/Automattic/mongoose/issues/14432) [IICarst](https://togithub.com/IICarst)
- types(model): make bulkWrite() types more flexible to account for casting [#14423](https://togithub.com/Automattic/mongoose/issues/14423)
- docs: update version support documentation for mongoose 5 & 6 [#14427](https://togithub.com/Automattic/mongoose/issues/14427) [hasezoey](https://togithub.com/hasezoey)
### [`v8.2.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#821--2024-03-04)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.2.0...8.2.1)
\==================
- fix(document): make $clone avoid converting subdocs into POJOs [#14395](https://togithub.com/Automattic/mongoose/issues/14395) [#14353](https://togithub.com/Automattic/mongoose/issues/14353)
- fix(connection): avoid unhandled error on createConnection() if on('error') handler registered [#14390](https://togithub.com/Automattic/mongoose/issues/14390) [#14377](https://togithub.com/Automattic/mongoose/issues/14377)
- fix(schema): avoid applying default write concern to operations that are in a transaction [#14391](https://togithub.com/Automattic/mongoose/issues/14391) [#11382](https://togithub.com/Automattic/mongoose/issues/11382)
- types(querycursor): correct cursor async iterator type with populate() support [#14384](https://togithub.com/Automattic/mongoose/issues/14384) [#14374](https://togithub.com/Automattic/mongoose/issues/14374)
- types: missing typescript details on options params of updateMany, updateOne, etc. [#14382](https://togithub.com/Automattic/mongoose/issues/14382) [#14379](https://togithub.com/Automattic/mongoose/issues/14379) [#14378](https://togithub.com/Automattic/mongoose/issues/14378) [FaizBShah](https://togithub.com/FaizBShah) [sderrow](https://togithub.com/sderrow)
- types: allow Record\ as valid query select argument [#14371](https://togithub.com/Automattic/mongoose/issues/14371) [sderrow](https://togithub.com/sderrow)
### [`v8.2.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#820--2024-02-22)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.1.3...8.2.0)
\==================
- feat(model): add recompileSchema() function to models to allow applying schema changes after compiling [#14306](https://togithub.com/Automattic/mongoose/issues/14306) [#14296](https://togithub.com/Automattic/mongoose/issues/14296)
- feat: add middleware for bulkWrite() and createCollection() [#14358](https://togithub.com/Automattic/mongoose/issues/14358) [#14263](https://togithub.com/Automattic/mongoose/issues/14263) [#7893](https://togithub.com/Automattic/mongoose/issues/7893)
- feat(model): add `hydratedPopulatedDocs` option to make hydrate recursively hydrate populated docs [#14352](https://togithub.com/Automattic/mongoose/issues/14352) [#4727](https://togithub.com/Automattic/mongoose/issues/4727)
- feat(connection): add withSession helper [#14339](https://togithub.com/Automattic/mongoose/issues/14339) [#14330](https://togithub.com/Automattic/mongoose/issues/14330)
### [`v8.1.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#813--2024-02-16)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.1.2...8.1.3)
\==================
- fix: avoid corrupting $set-ed arrays when transaction error occurs [#14346](https://togithub.com/Automattic/mongoose/issues/14346) [#14340](https://togithub.com/Automattic/mongoose/issues/14340)
- fix(populate): handle ref() functions that return a model instance [#14343](https://togithub.com/Automattic/mongoose/issues/14343) [#14249](https://togithub.com/Automattic/mongoose/issues/14249)
- fix: insert version key when using insertMany even if `toObject.versionKey` set to false [#14344](https://togithub.com/Automattic/mongoose/issues/14344)
- fix(cursor): make aggregation cursor support transform option to match query cursor [#14348](https://togithub.com/Automattic/mongoose/issues/14348) [#14331](https://togithub.com/Automattic/mongoose/issues/14331)
- docs(document): clarify that transform function option applies to subdocs [#13757](https://togithub.com/Automattic/mongoose/issues/13757)
### [`v8.1.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#812--2024-02-08)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.1.1...8.1.2)
\==================
- fix: include virtuals in document array toString() output if toObject.virtuals set [#14335](https://togithub.com/Automattic/mongoose/issues/14335) [#14315](https://togithub.com/Automattic/mongoose/issues/14315)
- fix(document): handle setting nested path to spread doc with extra properties [#14287](https://togithub.com/Automattic/mongoose/issues/14287) [#14269](https://togithub.com/Automattic/mongoose/issues/14269)
- fix(populate): call setter on virtual populated path with populated doc instead of undefined [#14314](https://togithub.com/Automattic/mongoose/issues/14314)
- fix(QueryCursor): remove callback parameter of AggregationCursor and QueryCursor [#14299](https://togithub.com/Automattic/mongoose/issues/14299) [DevooKim](https://togithub.com/DevooKim)
- types: add typescript support for arbitrary fields for the options parameter of Model functions which are of type MongooseQueryOptions [#14342](https://togithub.com/Automattic/mongoose/issues/14342) [#14341](https://togithub.com/Automattic/mongoose/issues/14341) [FaizBShah](https://togithub.com/FaizBShah)
- types(model): correct return type for findOneAndUpdate with includeResultMetadata and lean set [#14336](https://togithub.com/Automattic/mongoose/issues/14336) [#14303](https://togithub.com/Automattic/mongoose/issues/14303)
- types(connection): add type definition for `createCollections()` [#14295](https://togithub.com/Automattic/mongoose/issues/14295) [#14279](https://togithub.com/Automattic/mongoose/issues/14279)
- docs(timestamps): clarify that replaceOne() and findOneAndReplace() overwrite timestamps [#14337](https://togithub.com/Automattic/mongoose/issues/14337) [#14309](https://togithub.com/Automattic/mongoose/issues/14309)
### [`v8.1.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#811--2024-01-24)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.1.0...8.1.1)
\==================
- fix(model): throw readable error when calling Model() with a string instead of model() [#14288](https://togithub.com/Automattic/mongoose/issues/14288) [#14281](https://togithub.com/Automattic/mongoose/issues/14281)
- fix(document): handle setting nested path to spread doc with extra properties [#14287](https://togithub.com/Automattic/mongoose/issues/14287) [#14269](https://togithub.com/Automattic/mongoose/issues/14269)
- types(query): add back context and setDefaultsOnInsert as Mongoose-specific query options [#14284](https://togithub.com/Automattic/mongoose/issues/14284) [#14282](https://togithub.com/Automattic/mongoose/issues/14282)
- types(query): add missing runValidators back to MongooseQueryOptions [#14278](https://togithub.com/Automattic/mongoose/issues/14278) [#14275](https://togithub.com/Automattic/mongoose/issues/14275)
### [`v8.1.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#810--2024-01-16)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.0.4...8.1.0)
\==================
- feat: upgrade MongoDB driver -> 6.3.0 [#14241](https://togithub.com/Automattic/mongoose/issues/14241) [#14189](https://togithub.com/Automattic/mongoose/issues/14189) [#14108](https://togithub.com/Automattic/mongoose/issues/14108) [#14104](https://togithub.com/Automattic/mongoose/issues/14104)
- feat: add Atlas search index helpers to Models and Schemas [#14251](https://togithub.com/Automattic/mongoose/issues/14251) [#14232](https://togithub.com/Automattic/mongoose/issues/14232)
- feat(connection): add listCollections() helper to connections [#14257](https://togithub.com/Automattic/mongoose/issues/14257)
- feat(schematype): merge rather than overwrite default schematype validators [#14124](https://togithub.com/Automattic/mongoose/issues/14124) [#14070](https://togithub.com/Automattic/mongoose/issues/14070)
- feat(types): support type hints in InferSchemaType [#14008](https://togithub.com/Automattic/mongoose/issues/14008) [JavaScriptBach](https://togithub.com/JavaScriptBach)
### [`v8.0.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#804--2024-01-08)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.0.3...8.0.4)
\==================
- fix(update): set CastError path to full path if casting update fails [#14161](https://togithub.com/Automattic/mongoose/issues/14161) [#14114](https://togithub.com/Automattic/mongoose/issues/14114)
- fix: cast error when there is an elemMatch in the and clause [#14171](https://togithub.com/Automattic/mongoose/issues/14171) [tosaka-n](https://togithub.com/tosaka-n)
- fix: allow defining index on base model that applies to all discriminators [#14176](https://togithub.com/Automattic/mongoose/issues/14176) [peplin](https://togithub.com/peplin)
- fix(model): deep clone bulkWrite() updateOne arguments to avoid mutating documents in update [#14197](https://togithub.com/Automattic/mongoose/issues/14197) [#14164](https://togithub.com/Automattic/mongoose/issues/14164)
- fix(populate): handle deselecting \_id with array of fields in populate() [#14242](https://togithub.com/Automattic/mongoose/issues/14242) [#14231](https://togithub.com/Automattic/mongoose/issues/14231)
- types(model+query): use stricter typings for updateX(), replaceOne(),deleteX() Model functions [#14228](https://togithub.com/Automattic/mongoose/issues/14228) [#14204](https://togithub.com/Automattic/mongoose/issues/14204)
- types: fix return types for findByIdAndDelete overrides [#14196](https://togithub.com/Automattic/mongoose/issues/14196) [#14190](https://togithub.com/Automattic/mongoose/issues/14190)
- types(schema): add missing omit() method [#14235](https://togithub.com/Automattic/mongoose/issues/14235) [amitbeck](https://togithub.com/amitbeck)
- types(model): add missing strict property to bulkWrite() top level options [#14239](https://togithub.com/Automattic/mongoose/issues/14239)
- docs(compatibility): add note that Mongoose 5.13 is fully compatible with MongoDB server 5 [#14230](https://togithub.com/Automattic/mongoose/issues/14230) [#14149](https://togithub.com/Automattic/mongoose/issues/14149)
- docs: add shared schemas guide [#14211](https://togithub.com/Automattic/mongoose/issues/14211)
- docs: update TLS/SSL guide for Mongoose v8 - MongoDB v6 driver deprecations [#14170](https://togithub.com/Automattic/mongoose/issues/14170) [andylwelch](https://togithub.com/andylwelch)
- docs: update findOneAndUpdate tutorial to use includeResultMetadata [#14208](https://togithub.com/Automattic/mongoose/issues/14208) [#14207](https://togithub.com/Automattic/mongoose/issues/14207)
- docs: clarify disabling \_id on subdocs [#14195](https://togithub.com/Automattic/mongoose/issues/14195) [#14194](https://togithub.com/Automattic/mongoose/issues/14194)
### [`v8.0.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#803--2023-12-07)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.0.2...8.0.3)
\==================
- 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)
- docs(connections): add example of registering connection event handlers [#14150](https://togithub.com/Automattic/mongoose/issues/14150)
- docs(populate): add example of using `refPath` and `ref` functions [#14133](https://togithub.com/Automattic/mongoose/issues/14133) [#13834](https://togithub.com/Automattic/mongoose/issues/13834)
- types: handle using BigInt global class in schema definitions [#14160](https://togithub.com/Automattic/mongoose/issues/14160) [#14147](https://togithub.com/Automattic/mongoose/issues/14147)
- types: make findOneAndDelete() without options return result doc, not ModifyResult [#14153](https://togithub.com/Automattic/mongoose/issues/14153) [#14130](https://togithub.com/Automattic/mongoose/issues/14130)
- types(model): add no-generic override for insertMany() with options [#14152](https://togithub.com/Automattic/mongoose/issues/14152) [#13999](https://togithub.com/Automattic/mongoose/issues/13999)
- types: add missing Type for applyDefaults [#14159](https://togithub.com/Automattic/mongoose/issues/14159) [jaypea](https://togithub.com/jaypea)
### [`v8.0.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#802--2023-11-28)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.0.1...8.0.2)
\==================
- fix(populate): set populated docs in correct order when populating virtual underneath doc array with justOne [#14105](https://togithub.com/Automattic/mongoose/issues/14105)
- fix(populate): fix curPath to update appropriately [#14099](https://togithub.com/Automattic/mongoose/issues/14099) [#14098](https://togithub.com/Automattic/mongoose/issues/14098) [csy1204](https://togithub.com/csy1204)
- 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(document): correct return type for doc.deleteOne() re: Mongoose 8 breaking change [#14110](https://togithub.com/Automattic/mongoose/issues/14110) [#14081](https://togithub.com/Automattic/mongoose/issues/14081)
- types: correct types for when includeResultMetadata: true is set [#14078](https://togithub.com/Automattic/mongoose/issues/14078)
- types(models): allow specifying timestamps as inline option for bulkWrite() operations [#14112](https://togithub.com/Automattic/mongoose/issues/14112) [#14072](https://togithub.com/Automattic/mongoose/issues/14072)
- docs: fix rendering of 7.x server compatibility [#14086](https://togithub.com/Automattic/mongoose/issues/14086) [laupow](https://togithub.com/laupow)
- docs(source/api): fix "index.js" -> "mongoose.js" rename [#14125](https://togithub.com/Automattic/mongoose/issues/14125)
- docs(README): update breaking change version [#14126](https://togithub.com/Automattic/mongoose/issues/14126)
### [`v8.0.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#801--2023-11-15)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/8.0.0...8.0.1)
\==================
- fix: retain key order with aliases when creating indexes with alias [#14042](https://togithub.com/Automattic/mongoose/issues/14042) [meabed](https://togithub.com/meabed)
- fix: handle nonexistent collection with diffIndexes [#14029](https://togithub.com/Automattic/mongoose/issues/14029) [#14010](https://togithub.com/Automattic/mongoose/issues/14010)
- types(model+query): correctly remove count from TypeScript types to reflect removal of runtime support [#14076](https://togithub.com/Automattic/mongoose/issues/14076) [#14067](https://togithub.com/Automattic/mongoose/issues/14067) [#14062](https://togithub.com/Automattic/mongoose/issues/14062)
- types: correct `this` parameter for methods and statics [#14028](https://togithub.com/Automattic/mongoose/issues/14028) [#14027](https://togithub.com/Automattic/mongoose/issues/14027) [ruxxzebre](https://togithub.com/ruxxzebre)
- types(model+query): unpack arrays in distinct return type [#14047](https://togithub.com/Automattic/mongoose/issues/14047) [#14026](https://togithub.com/Automattic/mongoose/issues/14026)
- types: add missing Types.UUID typings [#14023](https://togithub.com/Automattic/mongoose/issues/14023) [#13103](https://togithub.com/Automattic/mongoose/issues/13103) [k725](https://togithub.com/k725)
- docs: add mongoose 8 to mongodb server compatibility guide [#14064](https://togithub.com/Automattic/mongoose/issues/14064)
- docs: fix typo in queries.md [#14065](https://togithub.com/Automattic/mongoose/issues/14065) [MuhibAhmed](https://togithub.com/MuhibAhmed)
### [`v8.0.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#800--2023-10-31)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/7.8.1...8.0.0)
\==================
- docs: add version support notes for Mongoose 8, including EOL date for Mongoose 6
### [`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 [#1
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:
^5.8.9
->^8.0.0
Release Notes
Automattic/mongoose (mongoose)
### [`v8.6.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#860--2024-08-28) [Compare Source](https://togithub.com/Automattic/mongoose/compare/8.5.5...8.6.0) \================== - feat: upgrade mongodb -> 6.8.0, handle throwing error on closed cursor in Mongoose with `MongooseError` instead of `MongoCursorExhaustedError` [#14813](https://togithub.com/Automattic/mongoose/issues/14813) - feat(model+query): support options parameter for distinct() [#14772](https://togithub.com/Automattic/mongoose/issues/14772) [#8006](https://togithub.com/Automattic/mongoose/issues/8006) - feat(QueryCursor): add getDriverCursor() function that returns the raw driver cursor [#14745](https://togithub.com/Automattic/mongoose/issues/14745) - types: change query selector to disallow unknown top-level keys by default [#14764](https://togithub.com/Automattic/mongoose/issues/14764) [alex-statsig](https://togithub.com/alex-statsig) - types: make toObject() and toJSON() not generic by default to avoid type widening [#14819](https://togithub.com/Automattic/mongoose/issues/14819) [#12883](https://togithub.com/Automattic/mongoose/issues/12883) - types: avoid automatically inferring lean result type when assigning to explicitly typed variable [#14734](https://togithub.com/Automattic/mongoose/issues/14734) ### [`v8.5.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#855--2024-08-28) [Compare Source](https://togithub.com/Automattic/mongoose/compare/8.5.4...8.5.5) \================== - fix(populate): fix a couple of other places where Mongoose gets the document's \_id with getters [#14833](https://togithub.com/Automattic/mongoose/issues/14833) [#14827](https://togithub.com/Automattic/mongoose/issues/14827) [#14759](https://togithub.com/Automattic/mongoose/issues/14759) - fix(discriminator): shallow clone Schema.prototype.obj before merging schemas to avoid modifying original obj [#14821](https://togithub.com/Automattic/mongoose/issues/14821) - types: fix schema type based on timestamps schema options value [#14829](https://togithub.com/Automattic/mongoose/issues/14829) [#14825](https://togithub.com/Automattic/mongoose/issues/14825) [ark23CIS](https://togithub.com/ark23CIS) ### [`v8.5.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#854--2024-08-23) [Compare Source](https://togithub.com/Automattic/mongoose/compare/8.5.3...8.5.4) \================== - fix: add empty string check for collection name passed [#14806](https://togithub.com/Automattic/mongoose/issues/14806) [Shubham2552](https://togithub.com/Shubham2552) - docs(model): add 'throw' as valid strict value for bulkWrite() and add some more clarification on throwOnValidationError [#14809](https://togithub.com/Automattic/mongoose/issues/14809) ### [`v8.5.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#853--2024-08-13) [Compare Source](https://togithub.com/Automattic/mongoose/compare/8.5.2...8.5.3) \================== - fix(document): call required functions on subdocuments underneath nested paths with correct context [#14801](https://togithub.com/Automattic/mongoose/issues/14801) [#14788](https://togithub.com/Automattic/mongoose/issues/14788) - fix(populate): avoid throwing error when no result and `lean()` set [#14799](https://togithub.com/Automattic/mongoose/issues/14799) [#14794](https://togithub.com/Automattic/mongoose/issues/14794) [#14759](https://togithub.com/Automattic/mongoose/issues/14759) [MohOraby](https://togithub.com/MohOraby) - fix(document): apply virtuals to subdocuments if parent schema has virtuals: true for backwards compatibility [#14774](https://togithub.com/Automattic/mongoose/issues/14774) [#14771](https://togithub.com/Automattic/mongoose/issues/14771) [#14623](https://togithub.com/Automattic/mongoose/issues/14623) [#14394](https://togithub.com/Automattic/mongoose/issues/14394) - types: make HydratedSingleSubdocument and HydratedArraySubdocument merge types instead of using & [#14800](https://togithub.com/Automattic/mongoose/issues/14800) [#14793](https://togithub.com/Automattic/mongoose/issues/14793) - types: support schema type inference based on schema options timestamps as well [#14773](https://togithub.com/Automattic/mongoose/issues/14773) [#13215](https://togithub.com/Automattic/mongoose/issues/13215) [ark23CIS](https://togithub.com/ark23CIS) - types(cursor): indicate that cursor.next() can return null [#14798](https://togithub.com/Automattic/mongoose/issues/14798) [#14787](https://togithub.com/Automattic/mongoose/issues/14787) - types: allow mongoose.connection.db to be undefined [#14797](https://togithub.com/Automattic/mongoose/issues/14797) [#14789](https://togithub.com/Automattic/mongoose/issues/14789) - docs: add schema type widening advice [#14790](https://togithub.com/Automattic/mongoose/issues/14790) [JstnMcBrd](https://togithub.com/JstnMcBrd) ### [`v8.5.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#852--2024-07-30) [Compare Source](https://togithub.com/Automattic/mongoose/compare/8.5.1...8.5.2) \================== - perf(clone): avoid further unnecessary checks if cloning a primitive value [#14762](https://togithub.com/Automattic/mongoose/issues/14762) [#14394](https://togithub.com/Automattic/mongoose/issues/14394) - fix: allow setting document array default to null [#14769](https://togithub.com/Automattic/mongoose/issues/14769) [#14717](https://togithub.com/Automattic/mongoose/issues/14717) [#6691](https://togithub.com/Automattic/mongoose/issues/6691) - fix(model): support session: null option for save() to opt out of automatic session option with transactionAsyncLocalStorage [#14744](https://togithub.com/Automattic/mongoose/issues/14744) [#14736](https://togithub.com/Automattic/mongoose/issues/14736) - fix(model+document): avoid depopulating manually populated doc as getter value [#14760](https://togithub.com/Automattic/mongoose/issues/14760) [#14759](https://togithub.com/Automattic/mongoose/issues/14759) - fix: correct shardkey access in buildBulkWriteOps [#14753](https://togithub.com/Automattic/mongoose/issues/14753) [#14752](https://togithub.com/Automattic/mongoose/issues/14752) [adf0nt3s](https://togithub.com/adf0nt3s) - fix(query): handle casting $switch in $expr [#14755](https://togithub.com/Automattic/mongoose/issues/14755) [#14751](https://togithub.com/Automattic/mongoose/issues/14751) - types: allow calling SchemaType.cast() without parent and init parameters [#14756](https://togithub.com/Automattic/mongoose/issues/14756) [#14748](https://togithub.com/Automattic/mongoose/issues/14748) [#9076](https://togithub.com/Automattic/mongoose/issues/9076) - docs: fix a wrong example in v6 migration guide [#14758](https://togithub.com/Automattic/mongoose/issues/14758) [abdelrahman-elkady](https://togithub.com/abdelrahman-elkady) ### [`v8.5.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#851--2024-07-12) [Compare Source](https://togithub.com/Automattic/mongoose/compare/8.5.0...8.5.1) \================== - perf(model): performance improvements for insertMany() [#14724](https://togithub.com/Automattic/mongoose/issues/14724) - fix(model): avoid leaving subdoc defaults on top-level doc when setting subdocument to same value [#14728](https://togithub.com/Automattic/mongoose/issues/14728) [#14722](https://togithub.com/Automattic/mongoose/issues/14722) - fix(model): handle transactionAsyncLocalStorage option with insertMany() [#14743](https://togithub.com/Automattic/mongoose/issues/14743) - types: make \_id required on Document type [#14735](https://togithub.com/Automattic/mongoose/issues/14735) [#14660](https://togithub.com/Automattic/mongoose/issues/14660) - types: fix ChangeStream.close to return a PromiseConfiguration
📅 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.