Mend ensures you have the greatest risk reduction (highlighted in green) by removing as many vulnerabilities as possible. Click to see how we calculate risk reduction.
By merging this PR, the number of vulnerabilities in issue #33 will be resolved in part or in full.
---
### Release Notes
Automattic/mongoose
### [`v4.13.17`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41317--2018-08-30)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/df93f5b2b824f835eec682923ee440b049d9ea6d...4.13.17)
\====================
- fix(document): disallow setting `constructor` and `prototype` if strict mode false
### [`v4.13.16`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41316--2018-08-30)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/631f47633e78af0e1f4dda46ef1bb06197e1bb91...df93f5b2b824f835eec682923ee440b049d9ea6d)
\====================
- fix(document): disallow setting **proto** if strict mode false
- feat(error): backport adding modified paths to VersionError [#6928](https://togithub.com/Automattic/mongoose/issues/6928) [freewil](https://togithub.com/freewil)
### [`v4.13.15`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41315--2018-08-14)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.14...631f47633e78af0e1f4dda46ef1bb06197e1bb91)
\====================
- fix(mongoose): add global `usePushEach` option for easier Mongoose 4.x + MongoDB 3.6 [#6858](https://togithub.com/Automattic/mongoose/issues/6858)
- chore: fix flakey tests for 4.x [#6853](https://togithub.com/Automattic/mongoose/issues/6853) [Fonger](https://togithub.com/Fonger)
- feat(error): add version number to VersionError [#6852](https://togithub.com/Automattic/mongoose/issues/6852) [freewil](https://togithub.com/freewil)
### [`v4.13.14`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41314--2018-05-25)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.13...4.13.14)
\====================
- fix(model): handle retainKeyOrder option in findOneAndUpdate() [#6484](https://togithub.com/Automattic/mongoose/issues/6484)
### [`v4.13.13`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41313--2018-05-17)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.12...4.13.13)
\====================
- fix(update): stop clobbering $in when casting update [#6441](https://togithub.com/Automattic/mongoose/issues/6441) [#6339](https://togithub.com/Automattic/mongoose/issues/6339)
- fix: upgrade async -> 2.6.0 re: security warning
### [`v4.13.12`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41312--2018-03-13)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.11...4.13.12)
\====================
- fix(document): make virtual get() return undefined instead of null if no getters [#6223](https://togithub.com/Automattic/mongoose/issues/6223)
- docs: fix url in useMongoClient error message [#6219](https://togithub.com/Automattic/mongoose/issues/6219) [#6217](https://togithub.com/Automattic/mongoose/issues/6217) [lineus](https://togithub.com/lineus)
- fix(discriminator): don't copy `discriminators` property from base schema [#6122](https://togithub.com/Automattic/mongoose/issues/6122) [#6064](https://togithub.com/Automattic/mongoose/issues/6064)
### [`v4.13.11`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41311--2018-02-07)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.10...4.13.11)
\====================
- docs: fix links in 4.x docs [#6081](https://togithub.com/Automattic/mongoose/issues/6081)
- chore: add release script that uses --tag for npm publish for 4.x releases [#6063](https://togithub.com/Automattic/mongoose/issues/6063)
### [`v4.13.10`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41310--2018-01-28)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/9fea218392c4fb217ef8dbf2aa68e7e4a197bd60...4.13.10)
\====================
- docs(model+query): add lean() option to Model helpers [#5996](https://togithub.com/Automattic/mongoose/issues/5996) [aguyinmontreal](https://togithub.com/aguyinmontreal)
- fix: use lazy loading so we can build mongoose with webpack [#5993](https://togithub.com/Automattic/mongoose/issues/5993) [#5842](https://togithub.com/Automattic/mongoose/issues/5842)
- docs(connections): clarify multi-mongos with useMongoClient for 4.x docs [#5984](https://togithub.com/Automattic/mongoose/issues/5984)
- fix(populate): handle populating embedded discriminator paths [#5970](https://togithub.com/Automattic/mongoose/issues/5970)
- docs(query+aggregate): add more detail re: maxTimeMS [#4066](https://togithub.com/Automattic/mongoose/issues/4066)
### [`v4.13.9`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4139--2018-01-07)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.8...9fea218392c4fb217ef8dbf2aa68e7e4a197bd60)
\===================
- chore: update marked (dev dependency) re: security vulnerability [#5951](https://togithub.com/Automattic/mongoose/issues/5951) [ChristianMurphy](https://togithub.com/ChristianMurphy)
- fix: upgrade mongodb -> 2.2.34 for ipv6 and autoReconnect fixes [#5794](https://togithub.com/Automattic/mongoose/issues/5794) [#5760](https://togithub.com/Automattic/mongoose/issues/5760)
- docs: use useMongooseAggCursor for aggregate docs [#2955](https://togithub.com/Automattic/mongoose/issues/2955)
### [`v4.13.8`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4138--2017-12-27)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.7...4.13.8)
\===================
- docs(guide): use more up-to-date syntax for autoIndex example [#5933](https://togithub.com/Automattic/mongoose/issues/5933)
- docs: fix grammar [#5927](https://togithub.com/Automattic/mongoose/issues/5927) [abagh0703](https://togithub.com/abagh0703)
- fix: propagate lean options to child schemas [#5914](https://togithub.com/Automattic/mongoose/issues/5914)
- fix(populate): use correct model with discriminators + nested populate [#5858](https://togithub.com/Automattic/mongoose/issues/5858)
### [`v4.13.7`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4137--2017-12-11)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.6...4.13.7)
\===================
- docs(schematypes): fix typo [#5889](https://togithub.com/Automattic/mongoose/issues/5889) [gokaygurcan](https://togithub.com/gokaygurcan)
- fix(cursor): handle `reject(null)` with eachAsync callback [#5875](https://togithub.com/Automattic/mongoose/issues/5875) [#5874](https://togithub.com/Automattic/mongoose/issues/5874) [ZacharyRSmith](https://togithub.com/ZacharyRSmith)
- fix: disallow setting `mongoose.connection` to invalid values [#5871](https://togithub.com/Automattic/mongoose/issues/5871) [jinasonlin](https://togithub.com/jinasonlin)
- docs(middleware): suggest using `return next()` to stop middleware execution [#5866](https://togithub.com/Automattic/mongoose/issues/5866)
- docs(connection): improve connection string query param docs [#5864](https://togithub.com/Automattic/mongoose/issues/5864)
- fix(document): run validate hooks on array subdocs even if not directly modified [#5861](https://togithub.com/Automattic/mongoose/issues/5861)
- fix(discriminator): don't treat $meta as defining projection when querying [#5859](https://togithub.com/Automattic/mongoose/issues/5859)
- fix(types): handle Decimal128 when using bson-ext on server side [#5850](https://togithub.com/Automattic/mongoose/issues/5850)
- fix(document): ensure projection with only $slice isn't treated as inclusive for discriminators [#4991](https://togithub.com/Automattic/mongoose/issues/4991)
- fix(model): throw error when passing non-object to create() [#2037](https://togithub.com/Automattic/mongoose/issues/2037)
### [`v4.13.6`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4136--2017-12-02)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.5...4.13.6)
\===================
- fix(schema): support strictBool option in schema [#5856](https://togithub.com/Automattic/mongoose/issues/5856) [ekulabuhov](https://togithub.com/ekulabuhov)
- fix(update): make upsert option consistently handle truthy values, not just booleans, for updateOne() [#5839](https://togithub.com/Automattic/mongoose/issues/5839)
- refactor: remove unnecessary constructor check [#2057](https://togithub.com/Automattic/mongoose/issues/2057)
- docs(query): correct function signature for .mod() helper [#1806](https://togithub.com/Automattic/mongoose/issues/1806)
- fix(query): report ObjectParameterError when passing non-object as filter to find() and findOne() [#1698](https://togithub.com/Automattic/mongoose/issues/1698)
### [`v4.13.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4135--2017-11-24)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.4...4.13.5)
\===================
- fix(model): handle update cast errors correctly with bulkWrite [#5845](https://togithub.com/Automattic/mongoose/issues/5845) [Michael77](https://togithub.com/Michael77)
- docs: add link to bufferCommands option [#5844](https://togithub.com/Automattic/mongoose/issues/5844) [ralphite](https://togithub.com/ralphite)
- fix(model): allow virtual ref function to return arrays [#5834](https://togithub.com/Automattic/mongoose/issues/5834) [brunohcastro](https://togithub.com/brunohcastro)
- fix(query): don't throw uncaught error if query filter too big [#5812](https://togithub.com/Automattic/mongoose/issues/5812)
- fix(document): if setting unselected nested path, don't overwrite nested path [#5800](https://togithub.com/Automattic/mongoose/issues/5800)
- fix(document): support calling `populate()` on nested document props [#5703](https://togithub.com/Automattic/mongoose/issues/5703)
- fix: add `strictBool` option for schema type boolean [#5344](https://togithub.com/Automattic/mongoose/issues/5344) [#5211](https://togithub.com/Automattic/mongoose/issues/5211) [#4245](https://togithub.com/Automattic/mongoose/issues/4245)
- docs(faq): add faq re: typeKey [#1886](https://togithub.com/Automattic/mongoose/issues/1886)
- docs(query): add more detailed docs re: options [#1702](https://togithub.com/Automattic/mongoose/issues/1702)
### [`v4.13.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4134--2017-11-17)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.3...4.13.4)
\===================
- fix(aggregate): add chainable .option() helper for setting arbitrary options [#5829](https://togithub.com/Automattic/mongoose/issues/5829)
- fix(aggregate): add `.pipeline()` helper to get the current pipeline [#5825](https://togithub.com/Automattic/mongoose/issues/5825)
- docs: grammar fixes for `unique` FAQ [#5823](https://togithub.com/Automattic/mongoose/issues/5823) [mfluehr](https://togithub.com/mfluehr)
- chore: add node 9 to travis [#5822](https://togithub.com/Automattic/mongoose/issues/5822) [superheri](https://togithub.com/superheri)
- fix(model): fix infinite recursion with recursive embedded discriminators [#5821](https://togithub.com/Automattic/mongoose/issues/5821) [Faibk](https://togithub.com/Faibk)
### [`v4.13.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4133--2017-11-15)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.2...4.13.3)
\===================
- chore: add node 8 to travis [#5818](https://togithub.com/Automattic/mongoose/issues/5818) [superheri](https://togithub.com/superheri)
- fix(document): don't apply transforms to nested docs when updating already saved doc [#5807](https://togithub.com/Automattic/mongoose/issues/5807)
### [`v4.13.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41321--2020-07-12)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.1...4.13.2)
\====================
- fix(query): delete top-level `_bsontype` property in queries to prevent silent empty queries [#8222](https://togithub.com/Automattic/mongoose/issues/8222)
### [`v4.13.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41319--2019-07-02)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.0...4.13.1)
\====================
- fix(aggregate): make `setOptions()` work as advertised [#7950](https://togithub.com/Automattic/mongoose/issues/7950) [#6011](https://togithub.com/Automattic/mongoose/issues/6011) [cdimitroulas](https://togithub.com/cdimitroulas)
### [`v4.13.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4130--2017-11-02)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.6...4.13.0)
\===================
- feat(aggregate): add $addFields helper [#5740](https://togithub.com/Automattic/mongoose/issues/5740) [AyushG3112](https://togithub.com/AyushG3112)
- feat(connection): add connection-level bufferCommands [#5720](https://togithub.com/Automattic/mongoose/issues/5720)
- feat(connection): add createCollection() helper [#5712](https://togithub.com/Automattic/mongoose/issues/5712)
- feat(populate): support setting localField and foreignField to functions [#5704](https://togithub.com/Automattic/mongoose/issues/5704) [#5602](https://togithub.com/Automattic/mongoose/issues/5602)
- feat(query): add multipleCastError option for aggregating cast errors when casting update [#5609](https://togithub.com/Automattic/mongoose/issues/5609)
- feat(populate): allow passing a function to virtual ref [#5602](https://togithub.com/Automattic/mongoose/issues/5602)
- feat(schema): add excludeIndexes option to optionally prevent collecting indexes from nested schemas [#5575](https://togithub.com/Automattic/mongoose/issues/5575)
- feat(model): report validation errors from `insertMany()` if using `ordered: false` and `rawResult: true` [#5337](https://togithub.com/Automattic/mongoose/issues/5337)
- feat(aggregate): add pre/post aggregate middleware [#5251](https://togithub.com/Automattic/mongoose/issues/5251)
- feat(schema): allow using `set` as a schema path [#1939](https://togithub.com/Automattic/mongoose/issues/1939)
### [`v4.12.6`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4126--2017-11-01)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.5...4.12.6)
\===================
- fix(schema): make clone() copy query helpers correctly [#5752](https://togithub.com/Automattic/mongoose/issues/5752)
- fix: undeprecate `ensureIndex()` and use it by default [#3280](https://togithub.com/Automattic/mongoose/issues/3280)
### [`v4.12.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4125--2017-10-29)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.4...4.12.5)
\===================
- fix(query): correctly handle `$in` and required for $pull and update validators [#5744](https://togithub.com/Automattic/mongoose/issues/5744)
- feat(aggegate): add $addFields pipeline operator [#5740](https://togithub.com/Automattic/mongoose/issues/5740) [AyushG3112](https://togithub.com/AyushG3112)
- fix(document): catch sync errors in document pre hooks and report as error [#5738](https://togithub.com/Automattic/mongoose/issues/5738)
- fix(populate): handle slice projections correctly when automatically selecting populated fields [#5737](https://togithub.com/Automattic/mongoose/issues/5737)
- fix(discriminator): fix hooks for embedded discriminators [#5706](https://togithub.com/Automattic/mongoose/issues/5706) [wlingke](https://togithub.com/wlingke)
- fix(model): throw sane error when customer calls `mongoose.Model()` over `mongoose.model()` [#2005](https://togithub.com/Automattic/mongoose/issues/2005)
### [`v4.12.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4124--2017-10-21)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.3...4.12.4)
\===================
- test(plugins): add coverage for idGetter with id as a schema property [#5713](https://togithub.com/Automattic/mongoose/issues/5713) [wlingke](https://togithub.com/wlingke)
- fix(model): avoid copying recursive $$context object when creating discriminator after querying [#5721](https://togithub.com/Automattic/mongoose/issues/5721)
- fix(connection): ensure connection promise helpers are removed before emitting 'connected' [#5714](https://togithub.com/Automattic/mongoose/issues/5714)
- docs(schema): add notes about runSettersOnQuery to schema setters [#5705](https://togithub.com/Automattic/mongoose/issues/5705)
- fix(collection): ensure queued operations run on the next tick [#5562](https://togithub.com/Automattic/mongoose/issues/5562)
### [`v4.12.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4123--2017-10-16)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.2...4.12.3)
\===================
- fix(connection): emit 'reconnect' event as well as 'reconnected' for consistency with driver [#5719](https://togithub.com/Automattic/mongoose/issues/5719)
- fix: correctly bubble up left/joined events for replica set [#5718](https://togithub.com/Automattic/mongoose/issues/5718)
- fix(connection): allow passing in `autoIndex` as top-level option rather than requiring `config.autoIndex` [#5711](https://togithub.com/Automattic/mongoose/issues/5711)
- docs(connection): improve docs regarding reconnectTries, autoReconnect, and bufferMaxEntries [#5711](https://togithub.com/Automattic/mongoose/issues/5711)
- fix(query): handle null with addToSet/push/pull/pullAll update validators [#5710](https://togithub.com/Automattic/mongoose/issues/5710)
- fix(model): handle setDefaultsOnInsert option for bulkWrite updateOne and updateMany [#5708](https://togithub.com/Automattic/mongoose/issues/5708)
- fix(query): avoid infinite recursion edge case when cloning a buffer [#5702](https://togithub.com/Automattic/mongoose/issues/5702)
### [`v4.12.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4122--2017-10-14)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.1...4.12.2)
\===================
- docs(faq): add FAQ about using arrow functions for getters/setters, virtuals, and methods [#5700](https://togithub.com/Automattic/mongoose/issues/5700)
- docs(schema): document the childSchemas property and add to public API [#5695](https://togithub.com/Automattic/mongoose/issues/5695)
- fix(query): don't project in populated field if parent field is already projected in [#5669](https://togithub.com/Automattic/mongoose/issues/5669)
- fix: bump mongodb -> 2.2.33 for issue with autoReconnect [#4513](https://togithub.com/Automattic/mongoose/issues/4513)
### [`v4.12.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4121--2017-10-08)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.0...4.12.1)
\===================
- fix(document): create new doc when setting single nested, no more set() on copy of priorVal [#5693](https://togithub.com/Automattic/mongoose/issues/5693)
- fix(model): recursively call applyMethods on child schemas for global plugins [#5690](https://togithub.com/Automattic/mongoose/issues/5690)
- docs: fix bad promise lib example on home page [#5686](https://togithub.com/Automattic/mongoose/issues/5686)
- fix(query): handle false when checking for inclusive/exclusive projection [#5685](https://togithub.com/Automattic/mongoose/issues/5685)
- fix(discriminator): allow reusing child schema [#5684](https://togithub.com/Automattic/mongoose/issues/5684)
- fix: make addToSet() on empty array with subdoc trigger manual population [#5504](https://togithub.com/Automattic/mongoose/issues/5504)
### [`v4.12.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4120--2017-10-02)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.14...4.12.0)
\===================
- docs(validation): add docs coverage for ValidatorError.reason [#5681](https://togithub.com/Automattic/mongoose/issues/5681)
- feat(discriminator): always add discriminatorKey to base schema to allow updating [#5613](https://togithub.com/Automattic/mongoose/issues/5613)
- fix(document): make nested docs no longer inherit parent doc's schema props [#5586](https://togithub.com/Automattic/mongoose/issues/5586) [#5546](https://togithub.com/Automattic/mongoose/issues/5546) [#5470](https://togithub.com/Automattic/mongoose/issues/5470)
- feat(query): run update validators on $pull and $pullAll [#5555](https://togithub.com/Automattic/mongoose/issues/5555)
- feat(query): add .error() helper to query to error out in pre hooks [#5520](https://togithub.com/Automattic/mongoose/issues/5520)
- feat(connection): add dropCollection() helper [#5393](https://togithub.com/Automattic/mongoose/issues/5393)
- feat(schema): add schema-level collation option [#5295](https://togithub.com/Automattic/mongoose/issues/5295)
- feat(types): add `discriminator()` function for single nested subdocs [#5244](https://togithub.com/Automattic/mongoose/issues/5244)
- feat(document): add $isDeleted() getter/setter for better support for soft deletes [#4428](https://togithub.com/Automattic/mongoose/issues/4428)
- feat(connection): bubble up reconnectFailed event when driver gives up reconnecting [#4027](https://togithub.com/Automattic/mongoose/issues/4027)
- fix(query): report error if passing array or other non-object as filter to update query [#3677](https://togithub.com/Automattic/mongoose/issues/3677)
- fix(collection): use createIndex() instead of deprecated ensureIndex() [#3280](https://togithub.com/Automattic/mongoose/issues/3280)
### [`v4.11.14`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41114--2017-09-30)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/v4.11.13...4.11.14)
\====================
- chore: add nsp check to the CI build [#5679](https://togithub.com/Automattic/mongoose/issues/5679) [hairyhenderson](https://togithub.com/hairyhenderson)
- fix: bump mquery because of security issue with debug package [#5677](https://togithub.com/Automattic/mongoose/issues/5677) [#5675](https://togithub.com/Automattic/mongoose/issues/5675) [jonathanprl](https://togithub.com/jonathanprl)
- fix(populate): automatically select() populated()-ed fields [#5669](https://togithub.com/Automattic/mongoose/issues/5669)
- fix(connection): make force close work as expected [#5664](https://togithub.com/Automattic/mongoose/issues/5664)
- fix(document): treat $elemMatch as inclusive projection [#5661](https://togithub.com/Automattic/mongoose/issues/5661)
- docs(model/query): clarify which functions fire which middleware [#5654](https://togithub.com/Automattic/mongoose/issues/5654)
- fix(model): make `init()` public and return a promise that resolves when indexes are done building [#5563](https://togithub.com/Automattic/mongoose/issues/5563)
### [`v4.11.13`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41113--2017-09-24)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.12...v4.11.13)
\====================
- fix(query): correctly run replaceOne with update validators [#5665](https://togithub.com/Automattic/mongoose/issues/5665) [sime1](https://togithub.com/sime1)
- fix(schema): replace mistype in setupTimestamp method [#5656](https://togithub.com/Automattic/mongoose/issues/5656) [zipp3r](https://togithub.com/zipp3r)
- fix(query): avoid throwing cast error for strict: throw with nested id in query [#5640](https://togithub.com/Automattic/mongoose/issues/5640)
- fix(model): ensure class gets combined schema when using class syntax with discriminators [#5635](https://togithub.com/Automattic/mongoose/issues/5635)
- fix(document): handle setting doc array to array of top-level docs [#5632](https://togithub.com/Automattic/mongoose/issues/5632)
- fix(model): handle casting findOneAndUpdate() with overwrite and upsert [#5631](https://togithub.com/Automattic/mongoose/issues/5631)
- fix(update): correctly handle $ in updates [#5628](https://togithub.com/Automattic/mongoose/issues/5628)
- fix(types): handle manual population consistently for unshift() and splice() [#5504](https://togithub.com/Automattic/mongoose/issues/5504)
### [`v4.11.12`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41112--2017-09-18)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.11...4.11.12)
\====================
- docs(model): asterisk should not render as markdown bullet [#5644](https://togithub.com/Automattic/mongoose/issues/5644) [timkinnane](https://togithub.com/timkinnane)
- docs: use useMongoClient in connection example [#5627](https://togithub.com/Automattic/mongoose/issues/5627) [GabrielNicolasAvellaneda](https://togithub.com/GabrielNicolasAvellaneda)
- fix(connection): call callback when initial connection failed [#5626](https://togithub.com/Automattic/mongoose/issues/5626)
- fix(query): apply select correctly if a given nested schema is used for 2 different paths [#5603](https://togithub.com/Automattic/mongoose/issues/5603)
- fix(document): add graceful fallback for setting a doc array value and `pull()`-ing a doc [#3511](https://togithub.com/Automattic/mongoose/issues/3511)
### [`v4.11.11`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41111--2017-09-10)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/00d10d77450d91cb70c591db378723af3cf64f0a...4.11.11)
\====================
- fix(connection): properly set readyState in response to driver 'close' and 'reconnect' events [#5604](https://togithub.com/Automattic/mongoose/issues/5604)
- fix(document): ensure single embedded doc setters only get called once, with correct value [#5601](https://togithub.com/Automattic/mongoose/issues/5601)
- fix(timestamps): allow enabling updatedAt without createdAt [#5598](https://togithub.com/Automattic/mongoose/issues/5598)
- test: improve unique validator test by making create run before ensureIndex [#5595](https://togithub.com/Automattic/mongoose/issues/5595) [#5562](https://togithub.com/Automattic/mongoose/issues/5562)
- fix(query): ensure find callback only gets called once when post init hook throws error [#5592](https://togithub.com/Automattic/mongoose/issues/5592)
### [`v4.11.10`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41110--2017-09-03)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.9...00d10d77450d91cb70c591db378723af3cf64f0a)
\====================
- docs: add KeenIO tracking [#5612](https://togithub.com/Automattic/mongoose/issues/5612)
- fix(schema): ensure validators declared with `.validate()` get copied with clone() [#5607](https://togithub.com/Automattic/mongoose/issues/5607)
- fix: remove unnecessary jest warning [#5480](https://togithub.com/Automattic/mongoose/issues/5480)
- fix(discriminator): prevent implicit discriminator schema id from clobbering base schema custom id [#5591](https://togithub.com/Automattic/mongoose/issues/5591)
- fix(schema): hide schema objectid warning for non-hex strings of length 24 [#5587](https://togithub.com/Automattic/mongoose/issues/5587)
- docs(populate): use story schema defined key author instead of creator [#5578](https://togithub.com/Automattic/mongoose/issues/5578) [dmric](https://togithub.com/dmric)
- docs(document): describe usage of `.set()` [#5576](https://togithub.com/Automattic/mongoose/issues/5576)
- fix(document): ensure correct scope in single nested validators [#5569](https://togithub.com/Automattic/mongoose/issues/5569)
- fix(populate): don't mark path as populated until populate() is done [#5564](https://togithub.com/Automattic/mongoose/issues/5564)
- fix(document): make push()-ing a doc onto an empty array act as manual population [#5504](https://togithub.com/Automattic/mongoose/issues/5504)
- fix(connection): emit timeout event on socket timeout [#4513](https://togithub.com/Automattic/mongoose/issues/4513)
### [`v4.11.9`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4119--2017-08-27)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.8...4.11.9)
\===================
- fix(error): avoid using arguments.callee because that breaks strict mode [#5572](https://togithub.com/Automattic/mongoose/issues/5572)
- docs(schematypes): fix spacing [#5567](https://togithub.com/Automattic/mongoose/issues/5567)
- fix(query): enforce binary subtype always propagates to mongodb [#5551](https://togithub.com/Automattic/mongoose/issues/5551)
- fix(query): only skip castForQuery for mongoose arrays [#5536](https://togithub.com/Automattic/mongoose/issues/5536)
- fix(browser): rely on browser entrypoint to decide whether to use BrowserDocument or NodeDocument [#5480](https://togithub.com/Automattic/mongoose/issues/5480)
### [`v4.11.8`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4118--2017-08-23)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.7...4.11.8)
\===================
- feat: add warning about using schema ObjectId as type ObjectId [#5571](https://togithub.com/Automattic/mongoose/issues/5571) [efkan](https://togithub.com/efkan)
- fix(schema): allow setting `id` property after schema was created [#5570](https://togithub.com/Automattic/mongoose/issues/5570) [#5548](https://togithub.com/Automattic/mongoose/issues/5548)
- docs(populate): remove confusing \_ from populate docs [#5560](https://togithub.com/Automattic/mongoose/issues/5560)
- fix(connection): expose parsed uri fields (host, port, dbname) when using openUri() [#5556](https://togithub.com/Automattic/mongoose/issues/5556)
- docs: added type boolean to options documentation [#5547](https://togithub.com/Automattic/mongoose/issues/5547) [ndabAP](https://togithub.com/ndabAP)
- test: add test coverage for stopping/starting server [#5524](https://togithub.com/Automattic/mongoose/issues/5524)
- fix(aggregate): pull read preference from schema by default [#5522](https://togithub.com/Automattic/mongoose/issues/5522)
### [`v4.11.7`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4117--2017-08-14)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.6...4.11.7)
\===================
- fix: correct properties when calling toJSON() on populated virtual [#5544](https://togithub.com/Automattic/mongoose/issues/5544) [#5442](https://togithub.com/Automattic/mongoose/issues/5442) [davidwu226](https://togithub.com/davidwu226)
- docs: fix spelling [#5535](https://togithub.com/Automattic/mongoose/issues/5535) [et](https://togithub.com/et)
- fix(error): always set name before stack [#5533](https://togithub.com/Automattic/mongoose/issues/5533)
- fix: add warning about running jest in jsdom environment [#5532](https://togithub.com/Automattic/mongoose/issues/5532) [#5513](https://togithub.com/Automattic/mongoose/issues/5513) [#4943](https://togithub.com/Automattic/mongoose/issues/4943)
- fix(document): ensure overwriting a doc array cleans out individual docs [#5523](https://togithub.com/Automattic/mongoose/issues/5523)
- fix(schema): handle creating arrays of single nested using type key [#5521](https://togithub.com/Automattic/mongoose/issues/5521)
- fix: upgrade mongodb -> 2.2.31 to support user/pass options [#5419](https://togithub.com/Automattic/mongoose/issues/5419)
### [`v4.11.6`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4116--2017-08-07)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.5...4.11.6)
\===================
- fix: limiting number of async operations per time in insertMany [#5529](https://togithub.com/Automattic/mongoose/issues/5529) [andresattler](https://togithub.com/andresattler)
- fix: upgrade mongodb -> 2.2.30 [#5517](https://togithub.com/Automattic/mongoose/issues/5517)
- fix(browserDocument): prevent stack overflow caused by double-wrapping embedded doc save() in jest [#5513](https://togithub.com/Automattic/mongoose/issues/5513)
- fix(document): clear single nested doc when setting to empty object [#5506](https://togithub.com/Automattic/mongoose/issues/5506)
- fix(connection): emit reconnected and disconnected events correctly with useMongoClient [#5498](https://togithub.com/Automattic/mongoose/issues/5498)
- fix(populate): ensure nested virtual populate gets set even if top-level property is null [#5431](https://togithub.com/Automattic/mongoose/issues/5431)
### [`v4.11.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4115--2017-07-30)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.4...4.11.5)
\===================
- docs: fix link to $lookup [#5516](https://togithub.com/Automattic/mongoose/issues/5516) [TalhaAwan](https://togithub.com/TalhaAwan)
- fix: better parallelization for eachAsync [#5502](https://togithub.com/Automattic/mongoose/issues/5502) [lchenay](https://togithub.com/lchenay)
- docs(document): copy docs for save from model to doc [#5493](https://togithub.com/Automattic/mongoose/issues/5493)
- fix(document): handle dotted virtuals in toJSON output [#5473](https://togithub.com/Automattic/mongoose/issues/5473)
- fix(populate): restore user-provided limit after mutating so cursor() works with populate limit [#5468](https://togithub.com/Automattic/mongoose/issues/5468)
- fix(query): don't throw StrictModeError if geo query with upsert [#5467](https://togithub.com/Automattic/mongoose/issues/5467)
- fix(populate): propagate readPreference from query to populate queries by default [#5460](https://togithub.com/Automattic/mongoose/issues/5460)
- docs: warn not to use arrow functions for statics and methods [#5458](https://togithub.com/Automattic/mongoose/issues/5458)
- fix(query): iterate over all condition keys for setDefaultsOnInsert [#5455](https://togithub.com/Automattic/mongoose/issues/5455)
- docs(connection): clarify server/replset/mongos option deprecation with useMongoClient [#5442](https://togithub.com/Automattic/mongoose/issues/5442)
### [`v4.11.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4114--2017-07-23)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.3...4.11.4)
\===================
- fix: handle next() errors in `eachAsync()` [#5486](https://togithub.com/Automattic/mongoose/issues/5486) [lchenay](https://togithub.com/lchenay)
- fix(schema): propagate runSettersOnQuery option to implicitly created schemas [#5479](https://togithub.com/Automattic/mongoose/issues/5479) \[https://github.com/ValYouW]
- fix(query): run castConditions() correctly in update ops [#5477](https://togithub.com/Automattic/mongoose/issues/5477)
- fix(query): ensure castConditions called for findOne and findOneAnd\* [#5477](https://togithub.com/Automattic/mongoose/issues/5477)
- docs: clarify relationship between $lookup and populate [#5475](https://togithub.com/Automattic/mongoose/issues/5475) [TalhaAwan](https://togithub.com/TalhaAwan)
- test: add coverage for arrays of arrays [zbjornson](https://togithub.com/zbjornson)
- fix(middleware): ensure that error handlers for save get doc as 2nd param [#5466](https://togithub.com/Automattic/mongoose/issues/5466)
- fix: handle strict: false correctly [#5454](https://togithub.com/Automattic/mongoose/issues/5454) [#5453](https://togithub.com/Automattic/mongoose/issues/5453) [wookieb](https://togithub.com/wookieb)
- fix(query): apply schema excluded paths if only projection is a $slice [#5450](https://togithub.com/Automattic/mongoose/issues/5450)
- fix(query): correct discriminator handling for schema `select: false` fields in schema [#5448](https://togithub.com/Automattic/mongoose/issues/5448)
- fix(cursor): call next() in series when parallel option used [#5446](https://togithub.com/Automattic/mongoose/issues/5446)
- chore: load bundled driver first to avoid packaging problem [#5443](https://togithub.com/Automattic/mongoose/issues/5443) [prototypeme](https://togithub.com/prototypeme)
- fix(query): defer condition casting until final exec [#5434](https://togithub.com/Automattic/mongoose/issues/5434)
- fix(aggregate): don't rely on mongodb aggregate to put a cursor in the callback [#5394](https://togithub.com/Automattic/mongoose/issues/5394)
- docs(aggregate): add useMongooseAggCursor docs [#5394](https://togithub.com/Automattic/mongoose/issues/5394)
- docs(middleware): clarify context for document, query, and model middleware [#5381](https://togithub.com/Automattic/mongoose/issues/5381)
### [`v4.11.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4113--2017-07-14)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.2...4.11.3)
\===================
- fix(connection): remove .then() before resolving to prevent infinite recursion [#5471](https://togithub.com/Automattic/mongoose/issues/5471)
### [`v4.11.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4112--2017-07-13)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.1...4.11.2)
\===================
- docs: fix comment typo in connect example [#5435](https://togithub.com/Automattic/mongoose/issues/5435) [ConnorMcF](https://togithub.com/ConnorMcF)
- fix(update): correctly cast document array in update validators with exec() [#5430](https://togithub.com/Automattic/mongoose/issues/5430)
- fix(connection): handle autoIndex with useMongoClient [#5423](https://togithub.com/Automattic/mongoose/issues/5423)
- fix(schema): handle `type: [Array]` in schemas [#5416](https://togithub.com/Automattic/mongoose/issues/5416)
- fix(timestamps): if overwrite is set and there's a $set, use $set instead of top-level update [#5413](https://togithub.com/Automattic/mongoose/issues/5413)
- fix(document): don't double-validate deeply nested doc array elements [#5411](https://togithub.com/Automattic/mongoose/issues/5411)
- fix(schematype): clone default objects so default not shared across object instances unless `shared` specified [#5407](https://togithub.com/Automattic/mongoose/issues/5407)
- fix(document): reset down the nested subdocs when resetting parent doc [#5406](https://togithub.com/Automattic/mongoose/issues/5406)
- fix: don't pass error arg twice to error handlers [#5405](https://togithub.com/Automattic/mongoose/issues/5405)
- fix(connection): make openUri() return connection decorated with then() and catch() [#5404](https://togithub.com/Automattic/mongoose/issues/5404)
- fix: enforce $set on an array must be an array [#5403](https://togithub.com/Automattic/mongoose/issues/5403)
- fix(document): don't crash if calling `validateSync()` after overwriting doc array index [#5389](https://togithub.com/Automattic/mongoose/issues/5389)
- fix(discriminator): ensure discriminator key doesn't count as user-selected field for projection [#4629](https://togithub.com/Automattic/mongoose/issues/4629)
### [`v4.11.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41114--2017-09-30)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.0...4.11.1)
\====================
- chore: add nsp check to the CI build [#5679](https://togithub.com/Automattic/mongoose/issues/5679) [hairyhenderson](https://togithub.com/hairyhenderson)
- fix: bump mquery because of security issue with debug package [#5677](https://togithub.com/Automattic/mongoose/issues/5677) [#5675](https://togithub.com/Automattic/mongoose/issues/5675) [jonathanprl](https://togithub.com/jonathanprl)
- fix(populate): automatically select() populated()-ed fields [#5669](https://togithub.com/Automattic/mongoose/issues/5669)
- fix(connection): make force close work as expected [#5664](https://togithub.com/Automattic/mongoose/issues/5664)
- fix(document): treat $elemMatch as inclusive projection [#5661](https://togithub.com/Automattic/mongoose/issues/5661)
- docs(model/query): clarify which functions fire which middleware [#5654](https://togithub.com/Automattic/mongoose/issues/5654)
- fix(model): make `init()` public and return a promise that resolves when indexes are done building [#5563](https://togithub.com/Automattic/mongoose/issues/5563)
### [`v4.11.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4110--2017-06-25)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.8...4.11.0)
\===================
- feat(query): execute setters with query as context for `runSettersOnQuery` [#5339](https://togithub.com/Automattic/mongoose/issues/5339)
- feat(model): add translateAliases function [#5338](https://togithub.com/Automattic/mongoose/issues/5338) [rocketspacer](https://togithub.com/rocketspacer)
- feat(connection): add `useMongoClient` and `openUri` functions, deprecate current connect logic [#5304](https://togithub.com/Automattic/mongoose/issues/5304)
- refactor(schema): make id virtual not access doc internals [#5279](https://togithub.com/Automattic/mongoose/issues/5279)
- refactor: handle non-boolean lean [#5279](https://togithub.com/Automattic/mongoose/issues/5279)
- feat(cursor): add addCursorFlag() support to query and agg cursors [#4814](https://togithub.com/Automattic/mongoose/issues/4814)
- feat(cursor): add parallel option to eachAsync [#4244](https://togithub.com/Automattic/mongoose/issues/4244)
- feat(schema): allow setting custom error constructor for custom validators [#4009](https://togithub.com/Automattic/mongoose/issues/4009)
### [`v4.10.8`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4108--2017-06-21)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.7...4.10.8)
\===================
- docs: fix small formatting typo on schematypes [#5374](https://togithub.com/Automattic/mongoose/issues/5374) [gianpaj](https://togithub.com/gianpaj)
- fix(model): allow null as an \_id [#5370](https://togithub.com/Automattic/mongoose/issues/5370)
- fix(populate): don't throw async uncaught exception if model not found in populate [#5364](https://togithub.com/Automattic/mongoose/issues/5364)
- fix: correctly cast decimals in update [#5361](https://togithub.com/Automattic/mongoose/issues/5361)
- fix(error): don't use custom getter for ValidationError message [#5359](https://togithub.com/Automattic/mongoose/issues/5359)
- fix(query): handle runSettersOnQuery in built-in \_id setter [#5351](https://togithub.com/Automattic/mongoose/issues/5351)
- fix(document): ensure consistent context for nested doc custom validators [#5347](https://togithub.com/Automattic/mongoose/issues/5347)
### [`v4.10.7`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4107--2017-06-18)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.6...4.10.7)
\===================
- docs(validation): show overriding custom validator error with 2nd cb arg [#5358](https://togithub.com/Automattic/mongoose/issues/5358)
- fix: `parseOption` mutates user passed option map [#5357](https://togithub.com/Automattic/mongoose/issues/5357) [igwejk](https://togithub.com/igwejk)
- docs: fix guide.jade typo [#5356](https://togithub.com/Automattic/mongoose/issues/5356) [CalebAnderson2014](https://togithub.com/CalebAnderson2014)
- fix(populate): don't set populate virtual to ids when match fails [#5336](https://togithub.com/Automattic/mongoose/issues/5336)
- fix(query): callback with cast error if remove and delete\* args have a cast error [#5323](https://togithub.com/Automattic/mongoose/issues/5323)
### [`v4.10.6`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4106--2017-06-12)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.5...4.10.6)
\===================
- fix(cursor): handle custom model option for populate [#5334](https://togithub.com/Automattic/mongoose/issues/5334)
- fix(populate): handle empty virtual populate with Model.populate [#5331](https://togithub.com/Automattic/mongoose/issues/5331)
- fix(model): make ensureIndexes() run with autoIndex: false unless called internally [#5328](https://togithub.com/Automattic/mongoose/issues/5328) [#5324](https://togithub.com/Automattic/mongoose/issues/5324) [#5317](https://togithub.com/Automattic/mongoose/issues/5317)
- fix: wait for all connections to close before resolving disconnect() promise [#5316](https://togithub.com/Automattic/mongoose/issues/5316)
- fix(document): handle setting populated path with custom typeKey in schema [#5313](https://togithub.com/Automattic/mongoose/issues/5313)
- fix(error): add toJSON helper to ValidationError so `message` shows up with JSON.stringify [#5309](https://togithub.com/Automattic/mongoose/issues/5309)
- feat: add `getPromiseConstructor()` to prevent need for `mongoose.Promise.ES6` [#5305](https://togithub.com/Automattic/mongoose/issues/5305)
- fix(document): handle conditional required with undefined props [#5296](https://togithub.com/Automattic/mongoose/issues/5296)
- fix(model): clone options before inserting in save() [#5294](https://togithub.com/Automattic/mongoose/issues/5294)
- docs(populate): clarify that multiple populate() calls on same path overwrite [#5274](https://togithub.com/Automattic/mongoose/issues/5274)
### [`v4.10.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4105--2017-06-06)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.4...4.10.5)
\===================
- chore: improve contrib guide for building docs [#5312](https://togithub.com/Automattic/mongoose/issues/5312)
- fix(populate): handle init-ing nested virtuals properly [#5311](https://togithub.com/Automattic/mongoose/issues/5311)
- fix(update): report update validator error if required path under single nested doc not set
- fix(schema): remove default validate pre hook that was causing issues with jest [#4943](https://togithub.com/Automattic/mongoose/issues/4943)
### [`v4.10.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4104--2017-05-29)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.3...4.10.4)
\===================
- chore: dont store test data in same directory [#5303](https://togithub.com/Automattic/mongoose/issues/5303)
- chore: add data dirs to npmignore [#5301](https://togithub.com/Automattic/mongoose/issues/5301) [Starfox64](https://togithub.com/Starfox64)
- docs(query): add docs about runSettersOnQuery [#5300](https://togithub.com/Automattic/mongoose/issues/5300)
### [`v4.10.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4103--2017-05-27)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.2...4.10.3)
\===================
- docs: correct inconsistent references to updateOne and replaceOne [#5297](https://togithub.com/Automattic/mongoose/issues/5297) [dhritzkiv](https://togithub.com/dhritzkiv)
- docs: fix dropdowns in docs [#5292](https://togithub.com/Automattic/mongoose/issues/5292) [nathanallen](https://togithub.com/nathanallen)
- docs: add description of alias option [#5287](https://togithub.com/Automattic/mongoose/issues/5287)
- fix(document): prevent infinite loop if validating nested array [#5282](https://togithub.com/Automattic/mongoose/issues/5282)
- fix(schema): correctly handle ref ObjectIds from different mongoose libs [#5259](https://togithub.com/Automattic/mongoose/issues/5259)
- fix(schema): load child class methods after base class methods to allow override [#5227](https://togithub.com/Automattic/mongoose/issues/5227)
### [`v4.10.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4102--2017-05-22)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.1...4.10.2)
\===================
- fix: bump ms -> 2.0.0 and mquery -> 2.3.1 for minor security vulnerability [#5275](https://togithub.com/Automattic/mongoose/issues/5275)
### [`v4.10.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4101--2017-05-21)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.0...4.10.1)
\===================
- fix(aggregate): handle sorting by text score correctly [#5258](https://togithub.com/Automattic/mongoose/issues/5258)
- fix(populate): handle doc.populate() with virtuals [#5240](https://togithub.com/Automattic/mongoose/issues/5240)
- fix(schema): enforce that `_id` is never null [#5236](https://togithub.com/Automattic/mongoose/issues/5236)
### [`v4.10.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4100--2017-05-18)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.9.10...4.10.0)
\===================
- fix(schema): update clone method to include indexes [#5268](https://togithub.com/Automattic/mongoose/issues/5268) [clozanosanchez](https://togithub.com/clozanosanchez)
- feat(schema): support aliases [#5184](https://togithub.com/Automattic/mongoose/issues/5184) [rocketspacer](https://togithub.com/rocketspacer)
- feat(aggregate): add mongoose-specific aggregation cursor option [#5145](https://togithub.com/Automattic/mongoose/issues/5145)
- refactor(model): make sharding into a plugin instead of core [#5105](https://togithub.com/Automattic/mongoose/issues/5105)
- fix(document): make nested doc mongoose internals not enumerable again [#5078](https://togithub.com/Automattic/mongoose/issues/5078)
- feat(model): pass params to pre hooks [#5064](https://togithub.com/Automattic/mongoose/issues/5064)
- feat(timestamps): support already defined timestamp paths in schema [#4868](https://togithub.com/Automattic/mongoose/issues/4868)
- feat(query): add runSettersOnQuery option [#4569](https://togithub.com/Automattic/mongoose/issues/4569)
- fix(query): add strictQuery option that throws when not querying on field not in schema [#4136](https://togithub.com/Automattic/mongoose/issues/4136)
- fix(update): more complete handling for overwrite option with update validators [#3556](https://togithub.com/Automattic/mongoose/issues/3556)
- feat: support `unique: true` in arrays via the mongoose-unique-array plugin [#3347](https://togithub.com/Automattic/mongoose/issues/3347)
- fix(model): always emit 'index', even if no indexes [#3347](https://togithub.com/Automattic/mongoose/issues/3347)
- fix(schema): set unique indexes on primitive arrays [#3347](https://togithub.com/Automattic/mongoose/issues/3347)
- feat(validation): include failed paths in error message and inspect output [#3064](https://togithub.com/Automattic/mongoose/issues/3064) [#2135](https://togithub.com/Automattic/mongoose/issues/2135)
- fix(model): return saved docs when create() fails [#2190](https://togithub.com/Automattic/mongoose/issues/2190)
### [`v4.9.10`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4910--2017-05-17)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.9.9...4.9.10)
\===================
- fix(connection): ensure callback arg to openSet() is handled properly [#5249](https://togithub.com/Automattic/mongoose/issues/5249)
- docs: remove dead plugins repo and add content links [#5247](https://togithub.com/Automattic/mongoose/issues/5247)
- fix(model): skip index build if connecting after model init and autoIndex false [#5176](https://togithub.com/Automattic/mongoose/issues/5176)
### [`v4.9.9`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#499--2017-05-13)
[Compare Source](https://togithub.com/Automattic/mongoose/compare/4.9.8...4.9.9)
\==================
- docs: correct value for Query#regex() [#5230](https://togithub.com/Automattic
This PR contains the following updates:
4.2.4
->4.13.17
Version 4.13.17
| Risk Change | Critical | High | Medium | Low | | --- | --- | --- | --- | --- | | -100% | 0 (--) | 0 (-2 ) | 1 (-1 ) | 0 (-1 ) |Version 4.2.4
| Risk Change | Critical | High | Medium | Low | | --- | --- | --- | --- | --- | | N/A | 0 | 2 | 2 | 1 |Version 4.13.21
| Risk Change | Critical | High | Medium | Low | | --- | --- | --- | --- | --- | | -100% | 0 (--) | 0 (-2 ) | 1 (-1 ) | 0 (-1 ) |By merging this PR, the number of vulnerabilities in issue #33 will be resolved in part or in full.
--- ### Release Notes
Automattic/mongoose
### [`v4.13.17`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41317--2018-08-30) [Compare Source](https://togithub.com/Automattic/mongoose/compare/df93f5b2b824f835eec682923ee440b049d9ea6d...4.13.17) \==================== - fix(document): disallow setting `constructor` and `prototype` if strict mode false ### [`v4.13.16`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41316--2018-08-30) [Compare Source](https://togithub.com/Automattic/mongoose/compare/631f47633e78af0e1f4dda46ef1bb06197e1bb91...df93f5b2b824f835eec682923ee440b049d9ea6d) \==================== - fix(document): disallow setting **proto** if strict mode false - feat(error): backport adding modified paths to VersionError [#6928](https://togithub.com/Automattic/mongoose/issues/6928) [freewil](https://togithub.com/freewil) ### [`v4.13.15`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41315--2018-08-14) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.14...631f47633e78af0e1f4dda46ef1bb06197e1bb91) \==================== - fix(mongoose): add global `usePushEach` option for easier Mongoose 4.x + MongoDB 3.6 [#6858](https://togithub.com/Automattic/mongoose/issues/6858) - chore: fix flakey tests for 4.x [#6853](https://togithub.com/Automattic/mongoose/issues/6853) [Fonger](https://togithub.com/Fonger) - feat(error): add version number to VersionError [#6852](https://togithub.com/Automattic/mongoose/issues/6852) [freewil](https://togithub.com/freewil) ### [`v4.13.14`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41314--2018-05-25) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.13...4.13.14) \==================== - fix(model): handle retainKeyOrder option in findOneAndUpdate() [#6484](https://togithub.com/Automattic/mongoose/issues/6484) ### [`v4.13.13`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41313--2018-05-17) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.12...4.13.13) \==================== - fix(update): stop clobbering $in when casting update [#6441](https://togithub.com/Automattic/mongoose/issues/6441) [#6339](https://togithub.com/Automattic/mongoose/issues/6339) - fix: upgrade async -> 2.6.0 re: security warning ### [`v4.13.12`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41312--2018-03-13) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.11...4.13.12) \==================== - fix(document): make virtual get() return undefined instead of null if no getters [#6223](https://togithub.com/Automattic/mongoose/issues/6223) - docs: fix url in useMongoClient error message [#6219](https://togithub.com/Automattic/mongoose/issues/6219) [#6217](https://togithub.com/Automattic/mongoose/issues/6217) [lineus](https://togithub.com/lineus) - fix(discriminator): don't copy `discriminators` property from base schema [#6122](https://togithub.com/Automattic/mongoose/issues/6122) [#6064](https://togithub.com/Automattic/mongoose/issues/6064) ### [`v4.13.11`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41311--2018-02-07) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.10...4.13.11) \==================== - docs: fix links in 4.x docs [#6081](https://togithub.com/Automattic/mongoose/issues/6081) - chore: add release script that uses --tag for npm publish for 4.x releases [#6063](https://togithub.com/Automattic/mongoose/issues/6063) ### [`v4.13.10`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41310--2018-01-28) [Compare Source](https://togithub.com/Automattic/mongoose/compare/9fea218392c4fb217ef8dbf2aa68e7e4a197bd60...4.13.10) \==================== - docs(model+query): add lean() option to Model helpers [#5996](https://togithub.com/Automattic/mongoose/issues/5996) [aguyinmontreal](https://togithub.com/aguyinmontreal) - fix: use lazy loading so we can build mongoose with webpack [#5993](https://togithub.com/Automattic/mongoose/issues/5993) [#5842](https://togithub.com/Automattic/mongoose/issues/5842) - docs(connections): clarify multi-mongos with useMongoClient for 4.x docs [#5984](https://togithub.com/Automattic/mongoose/issues/5984) - fix(populate): handle populating embedded discriminator paths [#5970](https://togithub.com/Automattic/mongoose/issues/5970) - docs(query+aggregate): add more detail re: maxTimeMS [#4066](https://togithub.com/Automattic/mongoose/issues/4066) ### [`v4.13.9`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4139--2018-01-07) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.8...9fea218392c4fb217ef8dbf2aa68e7e4a197bd60) \=================== - chore: update marked (dev dependency) re: security vulnerability [#5951](https://togithub.com/Automattic/mongoose/issues/5951) [ChristianMurphy](https://togithub.com/ChristianMurphy) - fix: upgrade mongodb -> 2.2.34 for ipv6 and autoReconnect fixes [#5794](https://togithub.com/Automattic/mongoose/issues/5794) [#5760](https://togithub.com/Automattic/mongoose/issues/5760) - docs: use useMongooseAggCursor for aggregate docs [#2955](https://togithub.com/Automattic/mongoose/issues/2955) ### [`v4.13.8`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4138--2017-12-27) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.7...4.13.8) \=================== - docs(guide): use more up-to-date syntax for autoIndex example [#5933](https://togithub.com/Automattic/mongoose/issues/5933) - docs: fix grammar [#5927](https://togithub.com/Automattic/mongoose/issues/5927) [abagh0703](https://togithub.com/abagh0703) - fix: propagate lean options to child schemas [#5914](https://togithub.com/Automattic/mongoose/issues/5914) - fix(populate): use correct model with discriminators + nested populate [#5858](https://togithub.com/Automattic/mongoose/issues/5858) ### [`v4.13.7`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4137--2017-12-11) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.6...4.13.7) \=================== - docs(schematypes): fix typo [#5889](https://togithub.com/Automattic/mongoose/issues/5889) [gokaygurcan](https://togithub.com/gokaygurcan) - fix(cursor): handle `reject(null)` with eachAsync callback [#5875](https://togithub.com/Automattic/mongoose/issues/5875) [#5874](https://togithub.com/Automattic/mongoose/issues/5874) [ZacharyRSmith](https://togithub.com/ZacharyRSmith) - fix: disallow setting `mongoose.connection` to invalid values [#5871](https://togithub.com/Automattic/mongoose/issues/5871) [jinasonlin](https://togithub.com/jinasonlin) - docs(middleware): suggest using `return next()` to stop middleware execution [#5866](https://togithub.com/Automattic/mongoose/issues/5866) - docs(connection): improve connection string query param docs [#5864](https://togithub.com/Automattic/mongoose/issues/5864) - fix(document): run validate hooks on array subdocs even if not directly modified [#5861](https://togithub.com/Automattic/mongoose/issues/5861) - fix(discriminator): don't treat $meta as defining projection when querying [#5859](https://togithub.com/Automattic/mongoose/issues/5859) - fix(types): handle Decimal128 when using bson-ext on server side [#5850](https://togithub.com/Automattic/mongoose/issues/5850) - fix(document): ensure projection with only $slice isn't treated as inclusive for discriminators [#4991](https://togithub.com/Automattic/mongoose/issues/4991) - fix(model): throw error when passing non-object to create() [#2037](https://togithub.com/Automattic/mongoose/issues/2037) ### [`v4.13.6`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4136--2017-12-02) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.5...4.13.6) \=================== - fix(schema): support strictBool option in schema [#5856](https://togithub.com/Automattic/mongoose/issues/5856) [ekulabuhov](https://togithub.com/ekulabuhov) - fix(update): make upsert option consistently handle truthy values, not just booleans, for updateOne() [#5839](https://togithub.com/Automattic/mongoose/issues/5839) - refactor: remove unnecessary constructor check [#2057](https://togithub.com/Automattic/mongoose/issues/2057) - docs(query): correct function signature for .mod() helper [#1806](https://togithub.com/Automattic/mongoose/issues/1806) - fix(query): report ObjectParameterError when passing non-object as filter to find() and findOne() [#1698](https://togithub.com/Automattic/mongoose/issues/1698) ### [`v4.13.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4135--2017-11-24) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.4...4.13.5) \=================== - fix(model): handle update cast errors correctly with bulkWrite [#5845](https://togithub.com/Automattic/mongoose/issues/5845) [Michael77](https://togithub.com/Michael77) - docs: add link to bufferCommands option [#5844](https://togithub.com/Automattic/mongoose/issues/5844) [ralphite](https://togithub.com/ralphite) - fix(model): allow virtual ref function to return arrays [#5834](https://togithub.com/Automattic/mongoose/issues/5834) [brunohcastro](https://togithub.com/brunohcastro) - fix(query): don't throw uncaught error if query filter too big [#5812](https://togithub.com/Automattic/mongoose/issues/5812) - fix(document): if setting unselected nested path, don't overwrite nested path [#5800](https://togithub.com/Automattic/mongoose/issues/5800) - fix(document): support calling `populate()` on nested document props [#5703](https://togithub.com/Automattic/mongoose/issues/5703) - fix: add `strictBool` option for schema type boolean [#5344](https://togithub.com/Automattic/mongoose/issues/5344) [#5211](https://togithub.com/Automattic/mongoose/issues/5211) [#4245](https://togithub.com/Automattic/mongoose/issues/4245) - docs(faq): add faq re: typeKey [#1886](https://togithub.com/Automattic/mongoose/issues/1886) - docs(query): add more detailed docs re: options [#1702](https://togithub.com/Automattic/mongoose/issues/1702) ### [`v4.13.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4134--2017-11-17) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.3...4.13.4) \=================== - fix(aggregate): add chainable .option() helper for setting arbitrary options [#5829](https://togithub.com/Automattic/mongoose/issues/5829) - fix(aggregate): add `.pipeline()` helper to get the current pipeline [#5825](https://togithub.com/Automattic/mongoose/issues/5825) - docs: grammar fixes for `unique` FAQ [#5823](https://togithub.com/Automattic/mongoose/issues/5823) [mfluehr](https://togithub.com/mfluehr) - chore: add node 9 to travis [#5822](https://togithub.com/Automattic/mongoose/issues/5822) [superheri](https://togithub.com/superheri) - fix(model): fix infinite recursion with recursive embedded discriminators [#5821](https://togithub.com/Automattic/mongoose/issues/5821) [Faibk](https://togithub.com/Faibk) ### [`v4.13.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4133--2017-11-15) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.2...4.13.3) \=================== - chore: add node 8 to travis [#5818](https://togithub.com/Automattic/mongoose/issues/5818) [superheri](https://togithub.com/superheri) - fix(document): don't apply transforms to nested docs when updating already saved doc [#5807](https://togithub.com/Automattic/mongoose/issues/5807) ### [`v4.13.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41321--2020-07-12) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.1...4.13.2) \==================== - fix(query): delete top-level `_bsontype` property in queries to prevent silent empty queries [#8222](https://togithub.com/Automattic/mongoose/issues/8222) ### [`v4.13.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41319--2019-07-02) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.13.0...4.13.1) \==================== - fix(aggregate): make `setOptions()` work as advertised [#7950](https://togithub.com/Automattic/mongoose/issues/7950) [#6011](https://togithub.com/Automattic/mongoose/issues/6011) [cdimitroulas](https://togithub.com/cdimitroulas) ### [`v4.13.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4130--2017-11-02) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.6...4.13.0) \=================== - feat(aggregate): add $addFields helper [#5740](https://togithub.com/Automattic/mongoose/issues/5740) [AyushG3112](https://togithub.com/AyushG3112) - feat(connection): add connection-level bufferCommands [#5720](https://togithub.com/Automattic/mongoose/issues/5720) - feat(connection): add createCollection() helper [#5712](https://togithub.com/Automattic/mongoose/issues/5712) - feat(populate): support setting localField and foreignField to functions [#5704](https://togithub.com/Automattic/mongoose/issues/5704) [#5602](https://togithub.com/Automattic/mongoose/issues/5602) - feat(query): add multipleCastError option for aggregating cast errors when casting update [#5609](https://togithub.com/Automattic/mongoose/issues/5609) - feat(populate): allow passing a function to virtual ref [#5602](https://togithub.com/Automattic/mongoose/issues/5602) - feat(schema): add excludeIndexes option to optionally prevent collecting indexes from nested schemas [#5575](https://togithub.com/Automattic/mongoose/issues/5575) - feat(model): report validation errors from `insertMany()` if using `ordered: false` and `rawResult: true` [#5337](https://togithub.com/Automattic/mongoose/issues/5337) - feat(aggregate): add pre/post aggregate middleware [#5251](https://togithub.com/Automattic/mongoose/issues/5251) - feat(schema): allow using `set` as a schema path [#1939](https://togithub.com/Automattic/mongoose/issues/1939) ### [`v4.12.6`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4126--2017-11-01) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.5...4.12.6) \=================== - fix(schema): make clone() copy query helpers correctly [#5752](https://togithub.com/Automattic/mongoose/issues/5752) - fix: undeprecate `ensureIndex()` and use it by default [#3280](https://togithub.com/Automattic/mongoose/issues/3280) ### [`v4.12.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4125--2017-10-29) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.4...4.12.5) \=================== - fix(query): correctly handle `$in` and required for $pull and update validators [#5744](https://togithub.com/Automattic/mongoose/issues/5744) - feat(aggegate): add $addFields pipeline operator [#5740](https://togithub.com/Automattic/mongoose/issues/5740) [AyushG3112](https://togithub.com/AyushG3112) - fix(document): catch sync errors in document pre hooks and report as error [#5738](https://togithub.com/Automattic/mongoose/issues/5738) - fix(populate): handle slice projections correctly when automatically selecting populated fields [#5737](https://togithub.com/Automattic/mongoose/issues/5737) - fix(discriminator): fix hooks for embedded discriminators [#5706](https://togithub.com/Automattic/mongoose/issues/5706) [wlingke](https://togithub.com/wlingke) - fix(model): throw sane error when customer calls `mongoose.Model()` over `mongoose.model()` [#2005](https://togithub.com/Automattic/mongoose/issues/2005) ### [`v4.12.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4124--2017-10-21) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.3...4.12.4) \=================== - test(plugins): add coverage for idGetter with id as a schema property [#5713](https://togithub.com/Automattic/mongoose/issues/5713) [wlingke](https://togithub.com/wlingke) - fix(model): avoid copying recursive $$context object when creating discriminator after querying [#5721](https://togithub.com/Automattic/mongoose/issues/5721) - fix(connection): ensure connection promise helpers are removed before emitting 'connected' [#5714](https://togithub.com/Automattic/mongoose/issues/5714) - docs(schema): add notes about runSettersOnQuery to schema setters [#5705](https://togithub.com/Automattic/mongoose/issues/5705) - fix(collection): ensure queued operations run on the next tick [#5562](https://togithub.com/Automattic/mongoose/issues/5562) ### [`v4.12.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4123--2017-10-16) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.2...4.12.3) \=================== - fix(connection): emit 'reconnect' event as well as 'reconnected' for consistency with driver [#5719](https://togithub.com/Automattic/mongoose/issues/5719) - fix: correctly bubble up left/joined events for replica set [#5718](https://togithub.com/Automattic/mongoose/issues/5718) - fix(connection): allow passing in `autoIndex` as top-level option rather than requiring `config.autoIndex` [#5711](https://togithub.com/Automattic/mongoose/issues/5711) - docs(connection): improve docs regarding reconnectTries, autoReconnect, and bufferMaxEntries [#5711](https://togithub.com/Automattic/mongoose/issues/5711) - fix(query): handle null with addToSet/push/pull/pullAll update validators [#5710](https://togithub.com/Automattic/mongoose/issues/5710) - fix(model): handle setDefaultsOnInsert option for bulkWrite updateOne and updateMany [#5708](https://togithub.com/Automattic/mongoose/issues/5708) - fix(query): avoid infinite recursion edge case when cloning a buffer [#5702](https://togithub.com/Automattic/mongoose/issues/5702) ### [`v4.12.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4122--2017-10-14) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.1...4.12.2) \=================== - docs(faq): add FAQ about using arrow functions for getters/setters, virtuals, and methods [#5700](https://togithub.com/Automattic/mongoose/issues/5700) - docs(schema): document the childSchemas property and add to public API [#5695](https://togithub.com/Automattic/mongoose/issues/5695) - fix(query): don't project in populated field if parent field is already projected in [#5669](https://togithub.com/Automattic/mongoose/issues/5669) - fix: bump mongodb -> 2.2.33 for issue with autoReconnect [#4513](https://togithub.com/Automattic/mongoose/issues/4513) ### [`v4.12.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4121--2017-10-08) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.12.0...4.12.1) \=================== - fix(document): create new doc when setting single nested, no more set() on copy of priorVal [#5693](https://togithub.com/Automattic/mongoose/issues/5693) - fix(model): recursively call applyMethods on child schemas for global plugins [#5690](https://togithub.com/Automattic/mongoose/issues/5690) - docs: fix bad promise lib example on home page [#5686](https://togithub.com/Automattic/mongoose/issues/5686) - fix(query): handle false when checking for inclusive/exclusive projection [#5685](https://togithub.com/Automattic/mongoose/issues/5685) - fix(discriminator): allow reusing child schema [#5684](https://togithub.com/Automattic/mongoose/issues/5684) - fix: make addToSet() on empty array with subdoc trigger manual population [#5504](https://togithub.com/Automattic/mongoose/issues/5504) ### [`v4.12.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4120--2017-10-02) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.14...4.12.0) \=================== - docs(validation): add docs coverage for ValidatorError.reason [#5681](https://togithub.com/Automattic/mongoose/issues/5681) - feat(discriminator): always add discriminatorKey to base schema to allow updating [#5613](https://togithub.com/Automattic/mongoose/issues/5613) - fix(document): make nested docs no longer inherit parent doc's schema props [#5586](https://togithub.com/Automattic/mongoose/issues/5586) [#5546](https://togithub.com/Automattic/mongoose/issues/5546) [#5470](https://togithub.com/Automattic/mongoose/issues/5470) - feat(query): run update validators on $pull and $pullAll [#5555](https://togithub.com/Automattic/mongoose/issues/5555) - feat(query): add .error() helper to query to error out in pre hooks [#5520](https://togithub.com/Automattic/mongoose/issues/5520) - feat(connection): add dropCollection() helper [#5393](https://togithub.com/Automattic/mongoose/issues/5393) - feat(schema): add schema-level collation option [#5295](https://togithub.com/Automattic/mongoose/issues/5295) - feat(types): add `discriminator()` function for single nested subdocs [#5244](https://togithub.com/Automattic/mongoose/issues/5244) - feat(document): add $isDeleted() getter/setter for better support for soft deletes [#4428](https://togithub.com/Automattic/mongoose/issues/4428) - feat(connection): bubble up reconnectFailed event when driver gives up reconnecting [#4027](https://togithub.com/Automattic/mongoose/issues/4027) - fix(query): report error if passing array or other non-object as filter to update query [#3677](https://togithub.com/Automattic/mongoose/issues/3677) - fix(collection): use createIndex() instead of deprecated ensureIndex() [#3280](https://togithub.com/Automattic/mongoose/issues/3280) ### [`v4.11.14`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41114--2017-09-30) [Compare Source](https://togithub.com/Automattic/mongoose/compare/v4.11.13...4.11.14) \==================== - chore: add nsp check to the CI build [#5679](https://togithub.com/Automattic/mongoose/issues/5679) [hairyhenderson](https://togithub.com/hairyhenderson) - fix: bump mquery because of security issue with debug package [#5677](https://togithub.com/Automattic/mongoose/issues/5677) [#5675](https://togithub.com/Automattic/mongoose/issues/5675) [jonathanprl](https://togithub.com/jonathanprl) - fix(populate): automatically select() populated()-ed fields [#5669](https://togithub.com/Automattic/mongoose/issues/5669) - fix(connection): make force close work as expected [#5664](https://togithub.com/Automattic/mongoose/issues/5664) - fix(document): treat $elemMatch as inclusive projection [#5661](https://togithub.com/Automattic/mongoose/issues/5661) - docs(model/query): clarify which functions fire which middleware [#5654](https://togithub.com/Automattic/mongoose/issues/5654) - fix(model): make `init()` public and return a promise that resolves when indexes are done building [#5563](https://togithub.com/Automattic/mongoose/issues/5563) ### [`v4.11.13`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41113--2017-09-24) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.12...v4.11.13) \==================== - fix(query): correctly run replaceOne with update validators [#5665](https://togithub.com/Automattic/mongoose/issues/5665) [sime1](https://togithub.com/sime1) - fix(schema): replace mistype in setupTimestamp method [#5656](https://togithub.com/Automattic/mongoose/issues/5656) [zipp3r](https://togithub.com/zipp3r) - fix(query): avoid throwing cast error for strict: throw with nested id in query [#5640](https://togithub.com/Automattic/mongoose/issues/5640) - fix(model): ensure class gets combined schema when using class syntax with discriminators [#5635](https://togithub.com/Automattic/mongoose/issues/5635) - fix(document): handle setting doc array to array of top-level docs [#5632](https://togithub.com/Automattic/mongoose/issues/5632) - fix(model): handle casting findOneAndUpdate() with overwrite and upsert [#5631](https://togithub.com/Automattic/mongoose/issues/5631) - fix(update): correctly handle $ in updates [#5628](https://togithub.com/Automattic/mongoose/issues/5628) - fix(types): handle manual population consistently for unshift() and splice() [#5504](https://togithub.com/Automattic/mongoose/issues/5504) ### [`v4.11.12`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41112--2017-09-18) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.11...4.11.12) \==================== - docs(model): asterisk should not render as markdown bullet [#5644](https://togithub.com/Automattic/mongoose/issues/5644) [timkinnane](https://togithub.com/timkinnane) - docs: use useMongoClient in connection example [#5627](https://togithub.com/Automattic/mongoose/issues/5627) [GabrielNicolasAvellaneda](https://togithub.com/GabrielNicolasAvellaneda) - fix(connection): call callback when initial connection failed [#5626](https://togithub.com/Automattic/mongoose/issues/5626) - fix(query): apply select correctly if a given nested schema is used for 2 different paths [#5603](https://togithub.com/Automattic/mongoose/issues/5603) - fix(document): add graceful fallback for setting a doc array value and `pull()`-ing a doc [#3511](https://togithub.com/Automattic/mongoose/issues/3511) ### [`v4.11.11`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41111--2017-09-10) [Compare Source](https://togithub.com/Automattic/mongoose/compare/00d10d77450d91cb70c591db378723af3cf64f0a...4.11.11) \==================== - fix(connection): properly set readyState in response to driver 'close' and 'reconnect' events [#5604](https://togithub.com/Automattic/mongoose/issues/5604) - fix(document): ensure single embedded doc setters only get called once, with correct value [#5601](https://togithub.com/Automattic/mongoose/issues/5601) - fix(timestamps): allow enabling updatedAt without createdAt [#5598](https://togithub.com/Automattic/mongoose/issues/5598) - test: improve unique validator test by making create run before ensureIndex [#5595](https://togithub.com/Automattic/mongoose/issues/5595) [#5562](https://togithub.com/Automattic/mongoose/issues/5562) - fix(query): ensure find callback only gets called once when post init hook throws error [#5592](https://togithub.com/Automattic/mongoose/issues/5592) ### [`v4.11.10`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41110--2017-09-03) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.9...00d10d77450d91cb70c591db378723af3cf64f0a) \==================== - docs: add KeenIO tracking [#5612](https://togithub.com/Automattic/mongoose/issues/5612) - fix(schema): ensure validators declared with `.validate()` get copied with clone() [#5607](https://togithub.com/Automattic/mongoose/issues/5607) - fix: remove unnecessary jest warning [#5480](https://togithub.com/Automattic/mongoose/issues/5480) - fix(discriminator): prevent implicit discriminator schema id from clobbering base schema custom id [#5591](https://togithub.com/Automattic/mongoose/issues/5591) - fix(schema): hide schema objectid warning for non-hex strings of length 24 [#5587](https://togithub.com/Automattic/mongoose/issues/5587) - docs(populate): use story schema defined key author instead of creator [#5578](https://togithub.com/Automattic/mongoose/issues/5578) [dmric](https://togithub.com/dmric) - docs(document): describe usage of `.set()` [#5576](https://togithub.com/Automattic/mongoose/issues/5576) - fix(document): ensure correct scope in single nested validators [#5569](https://togithub.com/Automattic/mongoose/issues/5569) - fix(populate): don't mark path as populated until populate() is done [#5564](https://togithub.com/Automattic/mongoose/issues/5564) - fix(document): make push()-ing a doc onto an empty array act as manual population [#5504](https://togithub.com/Automattic/mongoose/issues/5504) - fix(connection): emit timeout event on socket timeout [#4513](https://togithub.com/Automattic/mongoose/issues/4513) ### [`v4.11.9`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4119--2017-08-27) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.8...4.11.9) \=================== - fix(error): avoid using arguments.callee because that breaks strict mode [#5572](https://togithub.com/Automattic/mongoose/issues/5572) - docs(schematypes): fix spacing [#5567](https://togithub.com/Automattic/mongoose/issues/5567) - fix(query): enforce binary subtype always propagates to mongodb [#5551](https://togithub.com/Automattic/mongoose/issues/5551) - fix(query): only skip castForQuery for mongoose arrays [#5536](https://togithub.com/Automattic/mongoose/issues/5536) - fix(browser): rely on browser entrypoint to decide whether to use BrowserDocument or NodeDocument [#5480](https://togithub.com/Automattic/mongoose/issues/5480) ### [`v4.11.8`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4118--2017-08-23) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.7...4.11.8) \=================== - feat: add warning about using schema ObjectId as type ObjectId [#5571](https://togithub.com/Automattic/mongoose/issues/5571) [efkan](https://togithub.com/efkan) - fix(schema): allow setting `id` property after schema was created [#5570](https://togithub.com/Automattic/mongoose/issues/5570) [#5548](https://togithub.com/Automattic/mongoose/issues/5548) - docs(populate): remove confusing \_ from populate docs [#5560](https://togithub.com/Automattic/mongoose/issues/5560) - fix(connection): expose parsed uri fields (host, port, dbname) when using openUri() [#5556](https://togithub.com/Automattic/mongoose/issues/5556) - docs: added type boolean to options documentation [#5547](https://togithub.com/Automattic/mongoose/issues/5547) [ndabAP](https://togithub.com/ndabAP) - test: add test coverage for stopping/starting server [#5524](https://togithub.com/Automattic/mongoose/issues/5524) - fix(aggregate): pull read preference from schema by default [#5522](https://togithub.com/Automattic/mongoose/issues/5522) ### [`v4.11.7`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4117--2017-08-14) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.6...4.11.7) \=================== - fix: correct properties when calling toJSON() on populated virtual [#5544](https://togithub.com/Automattic/mongoose/issues/5544) [#5442](https://togithub.com/Automattic/mongoose/issues/5442) [davidwu226](https://togithub.com/davidwu226) - docs: fix spelling [#5535](https://togithub.com/Automattic/mongoose/issues/5535) [et](https://togithub.com/et) - fix(error): always set name before stack [#5533](https://togithub.com/Automattic/mongoose/issues/5533) - fix: add warning about running jest in jsdom environment [#5532](https://togithub.com/Automattic/mongoose/issues/5532) [#5513](https://togithub.com/Automattic/mongoose/issues/5513) [#4943](https://togithub.com/Automattic/mongoose/issues/4943) - fix(document): ensure overwriting a doc array cleans out individual docs [#5523](https://togithub.com/Automattic/mongoose/issues/5523) - fix(schema): handle creating arrays of single nested using type key [#5521](https://togithub.com/Automattic/mongoose/issues/5521) - fix: upgrade mongodb -> 2.2.31 to support user/pass options [#5419](https://togithub.com/Automattic/mongoose/issues/5419) ### [`v4.11.6`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4116--2017-08-07) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.5...4.11.6) \=================== - fix: limiting number of async operations per time in insertMany [#5529](https://togithub.com/Automattic/mongoose/issues/5529) [andresattler](https://togithub.com/andresattler) - fix: upgrade mongodb -> 2.2.30 [#5517](https://togithub.com/Automattic/mongoose/issues/5517) - fix(browserDocument): prevent stack overflow caused by double-wrapping embedded doc save() in jest [#5513](https://togithub.com/Automattic/mongoose/issues/5513) - fix(document): clear single nested doc when setting to empty object [#5506](https://togithub.com/Automattic/mongoose/issues/5506) - fix(connection): emit reconnected and disconnected events correctly with useMongoClient [#5498](https://togithub.com/Automattic/mongoose/issues/5498) - fix(populate): ensure nested virtual populate gets set even if top-level property is null [#5431](https://togithub.com/Automattic/mongoose/issues/5431) ### [`v4.11.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4115--2017-07-30) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.4...4.11.5) \=================== - docs: fix link to $lookup [#5516](https://togithub.com/Automattic/mongoose/issues/5516) [TalhaAwan](https://togithub.com/TalhaAwan) - fix: better parallelization for eachAsync [#5502](https://togithub.com/Automattic/mongoose/issues/5502) [lchenay](https://togithub.com/lchenay) - docs(document): copy docs for save from model to doc [#5493](https://togithub.com/Automattic/mongoose/issues/5493) - fix(document): handle dotted virtuals in toJSON output [#5473](https://togithub.com/Automattic/mongoose/issues/5473) - fix(populate): restore user-provided limit after mutating so cursor() works with populate limit [#5468](https://togithub.com/Automattic/mongoose/issues/5468) - fix(query): don't throw StrictModeError if geo query with upsert [#5467](https://togithub.com/Automattic/mongoose/issues/5467) - fix(populate): propagate readPreference from query to populate queries by default [#5460](https://togithub.com/Automattic/mongoose/issues/5460) - docs: warn not to use arrow functions for statics and methods [#5458](https://togithub.com/Automattic/mongoose/issues/5458) - fix(query): iterate over all condition keys for setDefaultsOnInsert [#5455](https://togithub.com/Automattic/mongoose/issues/5455) - docs(connection): clarify server/replset/mongos option deprecation with useMongoClient [#5442](https://togithub.com/Automattic/mongoose/issues/5442) ### [`v4.11.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4114--2017-07-23) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.3...4.11.4) \=================== - fix: handle next() errors in `eachAsync()` [#5486](https://togithub.com/Automattic/mongoose/issues/5486) [lchenay](https://togithub.com/lchenay) - fix(schema): propagate runSettersOnQuery option to implicitly created schemas [#5479](https://togithub.com/Automattic/mongoose/issues/5479) \[https://github.com/ValYouW] - fix(query): run castConditions() correctly in update ops [#5477](https://togithub.com/Automattic/mongoose/issues/5477) - fix(query): ensure castConditions called for findOne and findOneAnd\* [#5477](https://togithub.com/Automattic/mongoose/issues/5477) - docs: clarify relationship between $lookup and populate [#5475](https://togithub.com/Automattic/mongoose/issues/5475) [TalhaAwan](https://togithub.com/TalhaAwan) - test: add coverage for arrays of arrays [zbjornson](https://togithub.com/zbjornson) - fix(middleware): ensure that error handlers for save get doc as 2nd param [#5466](https://togithub.com/Automattic/mongoose/issues/5466) - fix: handle strict: false correctly [#5454](https://togithub.com/Automattic/mongoose/issues/5454) [#5453](https://togithub.com/Automattic/mongoose/issues/5453) [wookieb](https://togithub.com/wookieb) - fix(query): apply schema excluded paths if only projection is a $slice [#5450](https://togithub.com/Automattic/mongoose/issues/5450) - fix(query): correct discriminator handling for schema `select: false` fields in schema [#5448](https://togithub.com/Automattic/mongoose/issues/5448) - fix(cursor): call next() in series when parallel option used [#5446](https://togithub.com/Automattic/mongoose/issues/5446) - chore: load bundled driver first to avoid packaging problem [#5443](https://togithub.com/Automattic/mongoose/issues/5443) [prototypeme](https://togithub.com/prototypeme) - fix(query): defer condition casting until final exec [#5434](https://togithub.com/Automattic/mongoose/issues/5434) - fix(aggregate): don't rely on mongodb aggregate to put a cursor in the callback [#5394](https://togithub.com/Automattic/mongoose/issues/5394) - docs(aggregate): add useMongooseAggCursor docs [#5394](https://togithub.com/Automattic/mongoose/issues/5394) - docs(middleware): clarify context for document, query, and model middleware [#5381](https://togithub.com/Automattic/mongoose/issues/5381) ### [`v4.11.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4113--2017-07-14) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.2...4.11.3) \=================== - fix(connection): remove .then() before resolving to prevent infinite recursion [#5471](https://togithub.com/Automattic/mongoose/issues/5471) ### [`v4.11.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4112--2017-07-13) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.1...4.11.2) \=================== - docs: fix comment typo in connect example [#5435](https://togithub.com/Automattic/mongoose/issues/5435) [ConnorMcF](https://togithub.com/ConnorMcF) - fix(update): correctly cast document array in update validators with exec() [#5430](https://togithub.com/Automattic/mongoose/issues/5430) - fix(connection): handle autoIndex with useMongoClient [#5423](https://togithub.com/Automattic/mongoose/issues/5423) - fix(schema): handle `type: [Array]` in schemas [#5416](https://togithub.com/Automattic/mongoose/issues/5416) - fix(timestamps): if overwrite is set and there's a $set, use $set instead of top-level update [#5413](https://togithub.com/Automattic/mongoose/issues/5413) - fix(document): don't double-validate deeply nested doc array elements [#5411](https://togithub.com/Automattic/mongoose/issues/5411) - fix(schematype): clone default objects so default not shared across object instances unless `shared` specified [#5407](https://togithub.com/Automattic/mongoose/issues/5407) - fix(document): reset down the nested subdocs when resetting parent doc [#5406](https://togithub.com/Automattic/mongoose/issues/5406) - fix: don't pass error arg twice to error handlers [#5405](https://togithub.com/Automattic/mongoose/issues/5405) - fix(connection): make openUri() return connection decorated with then() and catch() [#5404](https://togithub.com/Automattic/mongoose/issues/5404) - fix: enforce $set on an array must be an array [#5403](https://togithub.com/Automattic/mongoose/issues/5403) - fix(document): don't crash if calling `validateSync()` after overwriting doc array index [#5389](https://togithub.com/Automattic/mongoose/issues/5389) - fix(discriminator): ensure discriminator key doesn't count as user-selected field for projection [#4629](https://togithub.com/Automattic/mongoose/issues/4629) ### [`v4.11.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#41114--2017-09-30) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.11.0...4.11.1) \==================== - chore: add nsp check to the CI build [#5679](https://togithub.com/Automattic/mongoose/issues/5679) [hairyhenderson](https://togithub.com/hairyhenderson) - fix: bump mquery because of security issue with debug package [#5677](https://togithub.com/Automattic/mongoose/issues/5677) [#5675](https://togithub.com/Automattic/mongoose/issues/5675) [jonathanprl](https://togithub.com/jonathanprl) - fix(populate): automatically select() populated()-ed fields [#5669](https://togithub.com/Automattic/mongoose/issues/5669) - fix(connection): make force close work as expected [#5664](https://togithub.com/Automattic/mongoose/issues/5664) - fix(document): treat $elemMatch as inclusive projection [#5661](https://togithub.com/Automattic/mongoose/issues/5661) - docs(model/query): clarify which functions fire which middleware [#5654](https://togithub.com/Automattic/mongoose/issues/5654) - fix(model): make `init()` public and return a promise that resolves when indexes are done building [#5563](https://togithub.com/Automattic/mongoose/issues/5563) ### [`v4.11.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4110--2017-06-25) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.8...4.11.0) \=================== - feat(query): execute setters with query as context for `runSettersOnQuery` [#5339](https://togithub.com/Automattic/mongoose/issues/5339) - feat(model): add translateAliases function [#5338](https://togithub.com/Automattic/mongoose/issues/5338) [rocketspacer](https://togithub.com/rocketspacer) - feat(connection): add `useMongoClient` and `openUri` functions, deprecate current connect logic [#5304](https://togithub.com/Automattic/mongoose/issues/5304) - refactor(schema): make id virtual not access doc internals [#5279](https://togithub.com/Automattic/mongoose/issues/5279) - refactor: handle non-boolean lean [#5279](https://togithub.com/Automattic/mongoose/issues/5279) - feat(cursor): add addCursorFlag() support to query and agg cursors [#4814](https://togithub.com/Automattic/mongoose/issues/4814) - feat(cursor): add parallel option to eachAsync [#4244](https://togithub.com/Automattic/mongoose/issues/4244) - feat(schema): allow setting custom error constructor for custom validators [#4009](https://togithub.com/Automattic/mongoose/issues/4009) ### [`v4.10.8`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4108--2017-06-21) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.7...4.10.8) \=================== - docs: fix small formatting typo on schematypes [#5374](https://togithub.com/Automattic/mongoose/issues/5374) [gianpaj](https://togithub.com/gianpaj) - fix(model): allow null as an \_id [#5370](https://togithub.com/Automattic/mongoose/issues/5370) - fix(populate): don't throw async uncaught exception if model not found in populate [#5364](https://togithub.com/Automattic/mongoose/issues/5364) - fix: correctly cast decimals in update [#5361](https://togithub.com/Automattic/mongoose/issues/5361) - fix(error): don't use custom getter for ValidationError message [#5359](https://togithub.com/Automattic/mongoose/issues/5359) - fix(query): handle runSettersOnQuery in built-in \_id setter [#5351](https://togithub.com/Automattic/mongoose/issues/5351) - fix(document): ensure consistent context for nested doc custom validators [#5347](https://togithub.com/Automattic/mongoose/issues/5347) ### [`v4.10.7`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4107--2017-06-18) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.6...4.10.7) \=================== - docs(validation): show overriding custom validator error with 2nd cb arg [#5358](https://togithub.com/Automattic/mongoose/issues/5358) - fix: `parseOption` mutates user passed option map [#5357](https://togithub.com/Automattic/mongoose/issues/5357) [igwejk](https://togithub.com/igwejk) - docs: fix guide.jade typo [#5356](https://togithub.com/Automattic/mongoose/issues/5356) [CalebAnderson2014](https://togithub.com/CalebAnderson2014) - fix(populate): don't set populate virtual to ids when match fails [#5336](https://togithub.com/Automattic/mongoose/issues/5336) - fix(query): callback with cast error if remove and delete\* args have a cast error [#5323](https://togithub.com/Automattic/mongoose/issues/5323) ### [`v4.10.6`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4106--2017-06-12) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.5...4.10.6) \=================== - fix(cursor): handle custom model option for populate [#5334](https://togithub.com/Automattic/mongoose/issues/5334) - fix(populate): handle empty virtual populate with Model.populate [#5331](https://togithub.com/Automattic/mongoose/issues/5331) - fix(model): make ensureIndexes() run with autoIndex: false unless called internally [#5328](https://togithub.com/Automattic/mongoose/issues/5328) [#5324](https://togithub.com/Automattic/mongoose/issues/5324) [#5317](https://togithub.com/Automattic/mongoose/issues/5317) - fix: wait for all connections to close before resolving disconnect() promise [#5316](https://togithub.com/Automattic/mongoose/issues/5316) - fix(document): handle setting populated path with custom typeKey in schema [#5313](https://togithub.com/Automattic/mongoose/issues/5313) - fix(error): add toJSON helper to ValidationError so `message` shows up with JSON.stringify [#5309](https://togithub.com/Automattic/mongoose/issues/5309) - feat: add `getPromiseConstructor()` to prevent need for `mongoose.Promise.ES6` [#5305](https://togithub.com/Automattic/mongoose/issues/5305) - fix(document): handle conditional required with undefined props [#5296](https://togithub.com/Automattic/mongoose/issues/5296) - fix(model): clone options before inserting in save() [#5294](https://togithub.com/Automattic/mongoose/issues/5294) - docs(populate): clarify that multiple populate() calls on same path overwrite [#5274](https://togithub.com/Automattic/mongoose/issues/5274) ### [`v4.10.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4105--2017-06-06) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.4...4.10.5) \=================== - chore: improve contrib guide for building docs [#5312](https://togithub.com/Automattic/mongoose/issues/5312) - fix(populate): handle init-ing nested virtuals properly [#5311](https://togithub.com/Automattic/mongoose/issues/5311) - fix(update): report update validator error if required path under single nested doc not set - fix(schema): remove default validate pre hook that was causing issues with jest [#4943](https://togithub.com/Automattic/mongoose/issues/4943) ### [`v4.10.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4104--2017-05-29) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.3...4.10.4) \=================== - chore: dont store test data in same directory [#5303](https://togithub.com/Automattic/mongoose/issues/5303) - chore: add data dirs to npmignore [#5301](https://togithub.com/Automattic/mongoose/issues/5301) [Starfox64](https://togithub.com/Starfox64) - docs(query): add docs about runSettersOnQuery [#5300](https://togithub.com/Automattic/mongoose/issues/5300) ### [`v4.10.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4103--2017-05-27) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.2...4.10.3) \=================== - docs: correct inconsistent references to updateOne and replaceOne [#5297](https://togithub.com/Automattic/mongoose/issues/5297) [dhritzkiv](https://togithub.com/dhritzkiv) - docs: fix dropdowns in docs [#5292](https://togithub.com/Automattic/mongoose/issues/5292) [nathanallen](https://togithub.com/nathanallen) - docs: add description of alias option [#5287](https://togithub.com/Automattic/mongoose/issues/5287) - fix(document): prevent infinite loop if validating nested array [#5282](https://togithub.com/Automattic/mongoose/issues/5282) - fix(schema): correctly handle ref ObjectIds from different mongoose libs [#5259](https://togithub.com/Automattic/mongoose/issues/5259) - fix(schema): load child class methods after base class methods to allow override [#5227](https://togithub.com/Automattic/mongoose/issues/5227) ### [`v4.10.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4102--2017-05-22) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.1...4.10.2) \=================== - fix: bump ms -> 2.0.0 and mquery -> 2.3.1 for minor security vulnerability [#5275](https://togithub.com/Automattic/mongoose/issues/5275) ### [`v4.10.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4101--2017-05-21) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.10.0...4.10.1) \=================== - fix(aggregate): handle sorting by text score correctly [#5258](https://togithub.com/Automattic/mongoose/issues/5258) - fix(populate): handle doc.populate() with virtuals [#5240](https://togithub.com/Automattic/mongoose/issues/5240) - fix(schema): enforce that `_id` is never null [#5236](https://togithub.com/Automattic/mongoose/issues/5236) ### [`v4.10.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4100--2017-05-18) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.9.10...4.10.0) \=================== - fix(schema): update clone method to include indexes [#5268](https://togithub.com/Automattic/mongoose/issues/5268) [clozanosanchez](https://togithub.com/clozanosanchez) - feat(schema): support aliases [#5184](https://togithub.com/Automattic/mongoose/issues/5184) [rocketspacer](https://togithub.com/rocketspacer) - feat(aggregate): add mongoose-specific aggregation cursor option [#5145](https://togithub.com/Automattic/mongoose/issues/5145) - refactor(model): make sharding into a plugin instead of core [#5105](https://togithub.com/Automattic/mongoose/issues/5105) - fix(document): make nested doc mongoose internals not enumerable again [#5078](https://togithub.com/Automattic/mongoose/issues/5078) - feat(model): pass params to pre hooks [#5064](https://togithub.com/Automattic/mongoose/issues/5064) - feat(timestamps): support already defined timestamp paths in schema [#4868](https://togithub.com/Automattic/mongoose/issues/4868) - feat(query): add runSettersOnQuery option [#4569](https://togithub.com/Automattic/mongoose/issues/4569) - fix(query): add strictQuery option that throws when not querying on field not in schema [#4136](https://togithub.com/Automattic/mongoose/issues/4136) - fix(update): more complete handling for overwrite option with update validators [#3556](https://togithub.com/Automattic/mongoose/issues/3556) - feat: support `unique: true` in arrays via the mongoose-unique-array plugin [#3347](https://togithub.com/Automattic/mongoose/issues/3347) - fix(model): always emit 'index', even if no indexes [#3347](https://togithub.com/Automattic/mongoose/issues/3347) - fix(schema): set unique indexes on primitive arrays [#3347](https://togithub.com/Automattic/mongoose/issues/3347) - feat(validation): include failed paths in error message and inspect output [#3064](https://togithub.com/Automattic/mongoose/issues/3064) [#2135](https://togithub.com/Automattic/mongoose/issues/2135) - fix(model): return saved docs when create() fails [#2190](https://togithub.com/Automattic/mongoose/issues/2190) ### [`v4.9.10`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#4910--2017-05-17) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.9.9...4.9.10) \=================== - fix(connection): ensure callback arg to openSet() is handled properly [#5249](https://togithub.com/Automattic/mongoose/issues/5249) - docs: remove dead plugins repo and add content links [#5247](https://togithub.com/Automattic/mongoose/issues/5247) - fix(model): skip index build if connecting after model init and autoIndex false [#5176](https://togithub.com/Automattic/mongoose/issues/5176) ### [`v4.9.9`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#499--2017-05-13) [Compare Source](https://togithub.com/Automattic/mongoose/compare/4.9.8...4.9.9) \================== - docs: correct value for Query#regex() [#5230](https://togithub.com/Automattic