PageRenderTime 234ms CodeModel.GetById 17ms app.highlight 182ms RepoModel.GetById 1ms app.codeStats 1ms

/node_modules/mongoose/History.md

https://bitbucket.org/coleman333/smartsite
Markdown | 4190 lines | 3568 code | 622 blank | 0 comment | 0 complexity | 095d0d73b30bce2f2fdc9559a60ce18c MD5 | raw file
   15.0.14 / 2018-04-09
   2===================
   3 * fix(schema): clone aliases and alternative option syntax correctly
   4 * fix(query): call utils.toObject in query.count like in query.find #6325 [lineus](https://github.com/lineus)
   5 * docs(populate): add middleware examples #6320 [BorntraegerMarc](https://github.com/BorntraegerMarc)
   6 * docs(compatibility): fix dead link #6319 [lacivert](https://github.com/lacivert)
   7 * docs(api): fix markdown parsing for parameters #6318 #6314 [lineus](https://github.com/lineus)
   8 * fix(populate): handle space-delimited paths in array populate #6296 #6284 [lineus](https://github.com/lineus)
   9 * fix(populate): support basic virtual populate underneath embedded discriminators #6273
  10
  115.0.13 / 2018-04-05
  12===================
  13 * docs(faq): add middleware to faq arrow function warning #6309 [lineus](https://github.com/lineus)
  14 * docs(schema): add example to loadClass() docs #6308
  15 * docs: clean up misc typos #6304 [sfrieson](https://github.com/sfrieson)
  16 * fix(document): apply virtuals when calling `toJSON()` on a nested path #6294
  17 * refactor(connection): use `client.db()` syntax rather than double-parsing the URI #6292 #6286
  18 * docs: document new behavior of required validator for arrays #6288 [daltones](https://github.com/daltones)
  19 * fix(schema): treat set() options as user-provided options #6274
  20 * fix(schema): clone discriminators correctly #6274
  21 * fix(update): make setDefaultsOnInsert not create subdoc if only default is id #6269
  22 * docs(discriminator): clarify 3rd argument to Model.discriminator() #2596
  23
  245.0.12 / 2018-03-27
  25===================
  26 * docs(query): updating model name in query API docs #6280 [lineus](https://github.com/lineus)
  27 * docs: fix typo in tests #6275 [styler](https://github.com/styler)
  28 * fix: add missing `.hint()` to aggregate #6272 #6251 [lineus](https://github.com/lineus)
  29 * docs(api): add headers to each API docs section for easer nav #6261
  30 * fix(query): ensure hooked query functions always run on next tick for chaining #6250
  31 * fix(populate): ensure populated array not set to null if it isn't set #6245
  32 * fix(connection): set readyState to disconnected if initial connection fails #6244 #6131
  33 * docs(model): make `create()` params show up correctly in docs #6242
  34 * fix(model): make error handlers work with MongoDB server errors and `insertMany()` #6228
  35 * fix(browser): ensure browser document builds defaults for embedded arrays correctly #6175
  36 * fix(timestamps): set timestamps when using `updateOne()` and `updateMany()` #6282 [gualopezb](https://github.com/gualopezb)
  37
  385.0.11 / 2018-03-19
  39===================
  40 * fix(update): handle $pull with $in in update validators #6240
  41 * fix(query): don't convert undefined to null when casting so driver `ignoreUndefined` option works #6236
  42 * docs(middleware): add example of using async/await with middleware #6235
  43 * fix(populate): apply justOne option before `completeMany()` so it works with lean() #6234
  44 * fix(query): ensure errors in user callbacks aren't caught in init #6195 #6178
  45 * docs(connections): document dbName option for Atlas connections #6179
  46 * fix(discriminator): make child schema nested paths overwrite parent schema paths #6076
  47
  484.13.12 / 2018-03-13
  49====================
  50 * fix(document): make virtual get() return undefined instead of null if no getters #6223
  51 * docs: fix url in useMongoClient error message #6219 #6217 [lineus](https://github.com/lineus)
  52 * fix(discriminator): don't copy `discriminators` property from base schema #6122 #6064
  53
  545.0.10 / 2018-03-12
  55===================
  56 * docs(schematype): add notes re: running setters on queries #6209
  57 * docs: fix typo #6208 [kamagatos](https://github.com/kamagatos)
  58 * fix(query): only call setters once on query filter props for findOneAndUpdate and findOneAndRemove #6203
  59 * docs: elaborate on connection string changes in migration guide #6193
  60 * fix(document): skip applyDefaults if subdoc is null #6187
  61 * docs: fix schematypes docs and link to them #6176
  62 * docs(faq): add FAQs re: array defaults and casting aggregation pipelines #6184 #6176 #6170 [lineus](https://github.com/lineus)
  63 * fix(document): ensure primitive defaults are set and built-in default functions run before setters #6155
  64 * fix(query): handle single embedded embedded discriminators in castForQuery #6027
  65
  665.0.9 / 2018-03-05
  67==================
  68 * perf: bump mongodb -> 3.0.4 to fix SSL perf issue #6065
  69
  705.0.8 / 2018-03-03
  71==================
  72 * docs: remove obsolete references to `emitIndexErrors` #6186 [isaackwan](https://github.com/isaackwan)
  73 * fix(query): don't cast findOne() until exec() so setters don't run twice #6157
  74 * fix: remove document_provider.web.js file #6186
  75 * fix(discriminator): support custom discriminator model names #6100 [wentout](https://github.com/wentout)
  76 * fix: support caching calls to `useDb()` #6036 [rocketspacer](https://github.com/rocketspacer)
  77 * fix(query): add omitUndefined option so setDefaultsOnInsert can kick in on undefined #6034
  78 * fix: upgrade mongodb -> 3.0.3 for reconnectTries: 0 blocking process exit fix #6028
  79
  805.0.7 / 2018-02-23
  81==================
  82 * fix: support eachAsync options with aggregation cursor #6169 #6168 [vichle](https://github.com/vichle)
  83 * docs: fix link to MongoDB compound indexes docs #6162 [br0p0p](https://github.com/br0p0p)
  84 * docs(aggregate): use eachAsync instead of incorrect `each()` #6160 [simllll](https://github.com/simllll)
  85 * chore: fix benchmarks #6158 [pradel](https://github.com/pradel)
  86 * docs: remove dead link to old blog post #6154 [markstos](https://github.com/markstos)
  87 * fix: don't convert dates to numbers when updating mixed path #6146 #6145 [s4rbagamble](https://github.com/s4rbagamble)
  88 * feat(aggregate): add replaceRoot, count, sortByCount helpers #6142 [jakesjews](https://github.com/jakesjews)
  89 * fix(document): add includedChildren flag to modifiedPaths() #6134
  90 * perf: don't create wrapper function if no hooks specified #6126
  91 * fix(schema): allow indexes on single nested subdocs for geoJSON #6113
  92 * fix(document): allow depopulating all fields #6073
  93 * feat(mongoose): add support for `useFindAndModify` option on singleton #5616
  94
  955.0.6 / 2018-02-15
  96==================
  97 * refactor(query.castUpdate): avoid creating error until necessary #6137
  98 * docs(api): fix missing api docs #6136 [lineus](https://github.com/lineus)
  99 * fix(schema): copy virtuals when using `clone()` #6133
 100 * fix(update): avoid digging into buffers with upsert and replaceOne #6124
 101 * fix(schema): support `enum` on arrays of strings #6102
 102 * fix(update): cast `$addToSet: [1, 2]` -> `$addToSet: { $each: [1, 2] }` #6086
 103
 1045.0.5 / 2018-02-13
 105==================
 106 * docs: make > show up correctly in API docs #6114
 107 * fix(query): support `where()` overwriting primitive with object #6097
 108 * fix(schematype): don't run internal `resetId` setter on queries with _id #6093
 109 * fix(discriminator): don't copy `discriminators` property from base schema #6064
 110 * fix(utils): respect `valueOf()` when merging object for update #6059
 111 * docs(validation): fix typo 'maxLength' #4720
 112 * fix(document): apply defaults after setting initial value so default functions don't see empty doc #3781
 113
 1145.0.4 / 2018-02-08
 115==================
 116 * docs: add lambda guide #6107
 117 * fix(connection): add `dbName` option to work around `mongodb+srv` not supporting db name in URI #6106
 118 * fix(schematype): fix regexp typo in ObjectId #6098 [JoshuaWise](https://github.com/JoshuaWise)
 119 * perf(document): re-use the modifiedPaths list #6092 [tarun1793](https://github.com/tarun1793)
 120 * fix: use console.info() instead of console.error() for debug output #6088 [yuristsepaniuk](https://github.com/yuristsepaniuk)
 121 * docs(validation): clean up runValidators and isAsync options docs for 5.x #6083
 122 * docs(model): use array instead of spread consistently for aggregate() #6070
 123 * fix(schema): make aliases handle mongoose-lean-virtuals #6069
 124 * docs(layout): add link to subdocs guide #6056
 125 * fix(query): make strictQuery: true strip out fields that aren't in the schema #6032
 126 * docs(guide): add notes for `strictQuery` option #6032
 127
 1284.13.11 / 2018-02-07
 129====================
 130 * docs: fix links in 4.x docs #6081
 131 * chore: add release script that uses --tag for npm publish for 4.x releases #6063
 132
 1335.0.3 / 2018-01-31
 134==================
 135 * fix: consistently use process.nextTick() to avoid sinon.useFakeTimers() causing ops to hang #6074
 136 * docs(aggregate): fix typo #6072 [adursun](https://github.com/adursun)
 137 * chore: add return type to `mongoose.model()` docs [bryant1410](https://github.com/bryant1410)
 138 * fix(document): depopulate push()-ed docs when saving #6048
 139 * fix: upgrade mongodb -> 3.0.2 #6019
 140
 1415.0.2 / 2018-01-28
 142==================
 143 * fix(schema): do not overwrite default values in schema when nested timestamps are provided #6024 [cdeveas](https://github.com/cdeveas)
 144 * docs: fix syntax highlighting in models.jade, schematypes.jade, subdocs.jade #6058 [lineus](https://github.com/lineus)
 145 * fix: use lazy loading so we can build mongoose with webpack #5993 #5842
 146 * docs(connections): clarify multi-mongos with useMongoClient for 4.x docs #5984
 147 * fix(populate): handle populating embedded discriminator paths #5970
 148
 1494.13.10 / 2018-01-28
 150====================
 151 * docs(model+query): add lean() option to Model helpers #5996 [aguyinmontreal](https://github.com/aguyinmontreal)
 152 * fix: use lazy loading so we can build mongoose with webpack #5993 #5842
 153 * docs(connections): clarify multi-mongos with useMongoClient for 4.x docs #5984
 154 * fix(populate): handle populating embedded discriminator paths #5970
 155 * docs(query+aggregate): add more detail re: maxTimeMS #4066
 156
 1575.0.1 / 2018-01-19
 158==================
 159 * fix(document): make validate() not resolve to document #6014
 160 * fix(model): make save() not return DocumentNotFoundError if using fire-and-forget writes #6012
 161 * fix(aggregate): make options() work as advertised #6011 [spederiva](https://github.com/spederiva)
 162 * docs(queries): fix code samples #6008
 163
 1645.0.0 / 2018-01-17
 165==================
 166 * test: refactor tests to use start fewer connections #5985 [fenanquin](https://github.com/fenanquin)
 167 * feat: add global bufferCommands option #5879
 168 * docs: new docs site and build system #5976
 169 * test: increase timeout on slow test cases #5968 [fenanquin](https://github.com/fenanquin)
 170 * fix: avoid casting out array filter elements #5965
 171 * feat: add Model.watch() wrapper #5964
 172 * chore: replace istanbul with nyc #5962 [ChristianMurphy](https://github.com/ChristianMurphy)
 173
 1744.13.9 / 2018-01-07
 175===================
 176 * chore: update marked (dev dependency) re: security vulnerability #5951 [ChristianMurphy](https://github.com/ChristianMurphy)
 177 * fix: upgrade mongodb -> 2.2.34 for ipv6 and autoReconnect fixes #5794 #5760
 178 * docs: use useMongooseAggCursor for aggregate docs #2955
 179
 1805.0.0-rc2 / 2018-01-04
 181======================
 182 * fix: add cleaner warning about no longer needing `useMongoClient` in 5.x #5961
 183 * chore: update acquit -> 0.5.1 for minor security patch #5961 [ChristianMurphy](https://github.com/ChristianMurphy)
 184 * docs: add docs for mongoose 4.x at http://mongoosejs.com/docs/4.x #5959
 185 * docs: add link to migration guide #5957
 186 * chore: update eslint to version 4.14.0 #5955 [ChristianMurphy](https://github.com/ChristianMurphy)
 187 * chore: update mocha to version 4.1.0 [ChristianMurphy](https://github.com/ChristianMurphy)
 188
 1895.0.0-rc1 / 2018-01-02
 190======================
 191 * fix(index): use pluralize correctly for `mongoose.model()` #5958
 192 * fix: make mquery use native promises by default #5945
 193 * fix(connection): ensure 'joined' and 'left' events get bubbled up #5944
 194
 1955.0.0-rc0 / 2017-12-28
 196======================
 197 * BREAKING CHANGE: always use mongoose aggregation cursor when using `.aggregate().cursor()` #5941
 198 * BREAKING CHANGE: attach query middleware when compiling model #5939
 199 * BREAKING CHANGE: `emitIndexErrors` is on by default, failing index build will throw uncaught error if not handled #5910
 200 * BREAKING CHANGE: remove precompiled browser bundle #5895
 201 * feat: add `mongoose.pluralize()` function #5877
 202 * BREAKING CHANGE: remove `passRawResult` option for `findOneAndUpdate`, use `rawResult` #5869
 203 * BREAKING CHANGE: implicit async validators (based on number of function args) are removed, return a promise instead #5824
 204 * BREAKING CHANGE: fail fast if user sets a unique index on `_id` #5820 [varunjayaraman](https://github.com/varunjayaraman)
 205 * BREAKING CHANGE: mapReduce resolves to an object with 2 keys rather than 2 separate args #5816
 206 * BREAKING CHANGE: `mongoose.connect()` returns a promise, removed MongooseThenable #5796
 207 * BREAKING CHANGE: query stream removed, use `cursor()` instead #5795
 208 * BREAKING CHANGE: use MongoDB driver 3.0.0, drop support for MongoDB server < 3.0.0 #5791 #4740
 209 * BREAKING CHANGE: remove support for `$pushAll`, remove `usePushEach` option #5670
 210 * BREAKING CHANGE: make date casting use native Date #5395 [varunjayaraman](https://github.com/varunjayaraman)
 211 * BREAKING CHANGE: remove `runSettersOnQuery`, always run setters on query #5340
 212 * BREAKING CHANGE: array of length 0 now satisfies `required: true` for arays #5139 [wlingke](https://github.com/wlingke)
 213 * BREAKING CHANGE: remove `saveErrorIfNotFound`, always error out if `save()` did not update a document #4973
 214 * BREAKING CHANGE: don't execute getters in reverse order #4835
 215 * BREAKING CHANGE: make boolean casting more strict #4245
 216 * BREAKING CHANGE: `toObject()` and `toJSON()` option parameter merges with defaults rather than overwriting #4131
 217 * feat: allow setting `default` on `_id` #4069
 218 * BREAKING CHANGE: `deleteX()` and `remove()` promise resolves to the write object result #4013
 219 * feat: support returning a promise from middleware functions #3779
 220 * BREAKING CHANGE: don't return a promise if callback specified #3670
 221 * BREAKING CHANGE: only cast `update()`, `updateX()`, `replaceOne()`, `remove()`, `deleteX()` in exec #3529
 222 * BREAKING CHANGE: sync errors in middleware functions are now handled #3483
 223 * BREAKING CHANGE: post hooks get flow control #3232
 224 * BREAKING CHANGE: deduplicate hooks when merging discriminator schema #2945
 225 * BREAKING CHANGE: use native promises by default, remove support for mpromise #2917
 226 * BREAKING CHANGE: remove `retainKeyOrder`, always use forward order when iterating through objects #2749
 227 * BREAKING CHANGE: `aggregate()` no longer accepts a spread #2716
 228
 2294.13.8 / 2017-12-27
 230===================
 231 * docs(guide): use more up-to-date syntax for autoIndex example #5933
 232 * docs: fix grammar #5927 [abagh0703](https://github.com/abagh0703)
 233 * fix: propagate lean options to child schemas #5914
 234 * fix(populate): use correct model with discriminators + nested populate #5858
 235
 2364.13.7 / 2017-12-11
 237===================
 238 * docs(schematypes): fix typo #5889 [gokaygurcan](https://github.com/gokaygurcan)
 239 * fix(cursor): handle `reject(null)` with eachAsync callback #5875 #5874 [ZacharyRSmith](https://github.com/ZacharyRSmith)
 240 * fix: disallow setting `mongoose.connection` to invalid values #5871 [jinasonlin](https://github.com/jinasonlin)
 241 * docs(middleware): suggest using `return next()` to stop middleware execution #5866
 242 * docs(connection): improve connection string query param docs #5864
 243 * fix(document): run validate hooks on array subdocs even if not directly modified #5861
 244 * fix(discriminator): don't treat $meta as defining projection when querying #5859
 245 * fix(types): handle Decimal128 when using bson-ext on server side #5850
 246 * fix(document): ensure projection with only $slice isn't treated as inclusive for discriminators #4991
 247 * fix(model): throw error when passing non-object to create() #2037
 248
 2494.13.6 / 2017-12-02
 250===================
 251 * fix(schema): support strictBool option in schema #5856 [ekulabuhov](https://github.com/ekulabuhov)
 252 * fix(update): make upsert option consistently handle truthy values, not just booleans, for updateOne() #5839
 253 * refactor: remove unnecessary constructor check #2057
 254 * docs(query): correct function signature for .mod() helper #1806
 255 * fix(query): report ObjectParameterError when passing non-object as filter to find() and findOne() #1698
 256
 2574.13.5 / 2017-11-24
 258===================
 259 * fix(model): handle update cast errors correctly with bulkWrite #5845 [Michael77](https://github.com/Michael77)
 260 * docs: add link to bufferCommands option #5844 [ralphite](https://github.com/ralphite)
 261 * fix(model): allow virtual ref function to return arrays #5834 [brunohcastro](https://github.com/brunohcastro)
 262 * fix(query): don't throw uncaught error if query filter too big #5812
 263 * fix(document): if setting unselected nested path, don't overwrite nested path #5800
 264 * fix(document): support calling `populate()` on nested document props #5703
 265 * fix: add `strictBool` option for schema type boolean #5344 #5211 #4245
 266 * docs(faq): add faq re: typeKey #1886
 267 * docs(query): add more detailed docs re: options #1702
 268
 2694.13.4 / 2017-11-17
 270===================
 271 * fix(aggregate): add chainable .option() helper for setting arbitrary options #5829
 272 * fix(aggregate): add `.pipeline()` helper to get the current pipeline #5825
 273 * docs: grammar fixes for `unique` FAQ #5823 [mfluehr](https://github.com/mfluehr)
 274 * chore: add node 9 to travis #5822 [superheri](https://github.com/superheri)
 275 * fix(model): fix infinite recursion with recursive embedded discriminators #5821 [Faibk](https://github.com/Faibk)
 276
 2774.13.3 / 2017-11-15
 278===================
 279 * chore: add node 8 to travis #5818 [superheri](https://github.com/superheri)
 280 * fix(document): don't apply transforms to nested docs when updating already saved doc #5807
 281
 2824.13.2 / 2017-11-11
 283===================
 284 * feat(buffer): add support for subtype prop #5530
 285
 2864.13.1 / 2017-11-08
 287===================
 288 * fix: accept multiple paths or array of paths to depopulate #5798 #5797 [adamreisnz](https://github.com/adamreisnz)
 289 * fix(document): pass default array as actual array rather than taking first element #5780
 290 * fix(model): increment version when $set-ing it in a save() that requires a version bump #5779
 291 * fix(query): don't explicitly project in discriminator key if user projected in parent path #5775 #5754
 292 * fix(model): cast query option to geoNear() #5765
 293 * fix(query): don't treat projection with just $slice as inclusive #5737
 294 * fix(discriminator): defer applying embedded discriminator hooks until top-level model is compiled #5706
 295 * docs(discriminator): add warning to always attach hooks before calling discriminator() #5706
 296
 2974.13.0 / 2017-11-02
 298===================
 299 * feat(aggregate): add $addFields helper #5740 [AyushG3112](https://github.com/AyushG3112)
 300 * feat(connection): add connection-level bufferCommands #5720
 301 * feat(connection): add createCollection() helper #5712
 302 * feat(populate): support setting localField and foreignField to functions #5704 #5602
 303 * feat(query): add multipleCastError option for aggregating cast errors when casting update #5609
 304 * feat(populate): allow passing a function to virtual ref #5602
 305 * feat(schema): add excludeIndexes option to optionally prevent collecting indexes from nested schemas #5575
 306 * feat(model): report validation errors from `insertMany()` if using `ordered: false` and `rawResult: true` #5337
 307 * feat(aggregate): add pre/post aggregate middleware #5251
 308 * feat(schema): allow using `set` as a schema path #1939
 309
 3104.12.6 / 2017-11-01
 311===================
 312 * fix(schema): make clone() copy query helpers correctly #5752
 313 * fix: undeprecate `ensureIndex()` and use it by default #3280
 314
 3154.12.5 / 2017-10-29
 316===================
 317 * fix(query): correctly handle `$in` and required for $pull and update validators #5744
 318 * feat(aggegate): add $addFields pipeline operator #5740 [AyushG3112](https://github.com/AyushG3112)
 319 * fix(document): catch sync errors in document pre hooks and report as error #5738
 320 * fix(populate): handle slice projections correctly when automatically selecting populated fields #5737
 321 * fix(discriminator): fix hooks for embedded discriminators #5706 [wlingke](https://github.com/wlingke)
 322 * fix(model): throw sane error when customer calls `mongoose.Model()` over `mongoose.model()` #2005
 323
 3244.12.4 / 2017-10-21
 325===================
 326 * test(plugins): add coverage for idGetter with id as a schema property #5713 [wlingke](https://github.com/wlingke)
 327 * fix(model): avoid copying recursive $$context object when creating discriminator after querying #5721
 328 * fix(connection): ensure connection promise helpers are removed before emitting 'connected' #5714
 329 * docs(schema): add notes about runSettersOnQuery to schema setters #5705
 330 * fix(collection): ensure queued operations run on the next tick #5562
 331
 3324.12.3 / 2017-10-16
 333===================
 334 * fix(connection): emit 'reconnect' event as well as 'reconnected' for consistency with driver #5719
 335 * fix: correctly bubble up left/joined events for replica set #5718
 336 * fix(connection): allow passing in `autoIndex` as top-level option rather than requiring `config.autoIndex` #5711
 337 * docs(connection): improve docs regarding reconnectTries, autoReconnect, and bufferMaxEntries #5711
 338 * fix(query): handle null with addToSet/push/pull/pullAll update validators #5710
 339 * fix(model): handle setDefaultsOnInsert option for bulkWrite updateOne and updateMany #5708
 340 * fix(query): avoid infinite recursion edge case when cloning a buffer #5702
 341
 3424.12.2 / 2017-10-14
 343===================
 344 * docs(faq): add FAQ about using arrow functions for getters/setters, virtuals, and methods #5700
 345 * docs(schema): document the childSchemas property and add to public API #5695
 346 * fix(query): don't project in populated field if parent field is already projected in #5669
 347 * fix: bump mongodb -> 2.2.33 for issue with autoReconnect #4513
 348
 3494.12.1 / 2017-10-08
 350===================
 351 * fix(document): create new doc when setting single nested, no more set() on copy of priorVal #5693
 352 * fix(model): recursively call applyMethods on child schemas for global plugins #5690
 353 * docs: fix bad promise lib example on home page #5686
 354 * fix(query): handle false when checking for inclusive/exclusive projection #5685
 355 * fix(discriminator): allow reusing child schema #5684
 356 * fix: make addToSet() on empty array with subdoc trigger manual population #5504
 357
 3584.12.0 / 2017-10-02
 359===================
 360 * docs(validation): add docs coverage for ValidatorError.reason #5681
 361 * feat(discriminator): always add discriminatorKey to base schema to allow updating #5613
 362 * fix(document): make nested docs no longer inherit parent doc's schema props #5586 #5546 #5470
 363 * feat(query): run update validators on $pull and $pullAll #5555
 364 * feat(query): add .error() helper to query to error out in pre hooks #5520
 365 * feat(connection): add dropCollection() helper #5393
 366 * feat(schema): add schema-level collation option #5295
 367 * feat(types): add `discriminator()` function for single nested subdocs #5244
 368 * feat(document): add $isDeleted() getter/setter for better support for soft deletes #4428
 369 * feat(connection): bubble up reconnectFailed event when driver gives up reconnecting #4027
 370 * fix(query): report error if passing array or other non-object as filter to update query #3677
 371 * fix(collection): use createIndex() instead of deprecated ensureIndex() #3280
 372
 3734.11.14 / 2017-09-30
 374====================
 375 * chore: add nsp check to the CI build #5679 [hairyhenderson](https://github.com/hairyhenderson)
 376 * fix: bump mquery because of security issue with debug package #5677 #5675 [jonathanprl](https://github.com/jonathanprl)
 377 * fix(populate): automatically select() populated()-ed fields #5669
 378 * fix(connection): make force close work as expected #5664
 379 * fix(document): treat $elemMatch as inclusive projection #5661
 380 * docs(model/query): clarify which functions fire which middleware #5654
 381 * fix(model): make `init()` public and return a promise that resolves when indexes are done building #5563
 382
 3834.11.13 / 2017-09-24
 384====================
 385 * fix(query): correctly run replaceOne with update validators #5665 [sime1](https://github.com/sime1)
 386 * fix(schema): replace mistype in setupTimestamp method #5656 [zipp3r](https://github.com/zipp3r)
 387 * fix(query): avoid throwing cast error for strict: throw with nested id in query #5640
 388 * fix(model): ensure class gets combined schema when using class syntax with discriminators #5635
 389 * fix(document): handle setting doc array to array of top-level docs #5632
 390 * fix(model): handle casting findOneAndUpdate() with overwrite and upsert #5631
 391 * fix(update): correctly handle $ in updates #5628
 392 * fix(types): handle manual population consistently for unshift() and splice() #5504
 393
 3944.11.12 / 2017-09-18
 395====================
 396 * docs(model): asterisk should not render as markdown bullet #5644 [timkinnane](https://github.com/timkinnane)
 397 * docs: use useMongoClient in connection example #5627 [GabrielNicolasAvellaneda](https://github.com/GabrielNicolasAvellaneda)
 398 * fix(connection): call callback when initial connection failed #5626
 399 * fix(query): apply select correctly if a given nested schema is used for 2 different paths #5603
 400 * fix(document): add graceful fallback for setting a doc array value and `pull()`-ing a doc #3511
 401
 4024.11.11 / 2017-09-10
 403====================
 404 * fix(connection): properly set readyState in response to driver 'close' and 'reconnect' events #5604
 405 * fix(document): ensure single embedded doc setters only get called once, with correct value #5601
 406 * fix(timestamps): allow enabling updatedAt without createdAt #5598
 407 * test: improve unique validator test by making create run before ensureIndex #5595 #5562
 408 * fix(query): ensure find callback only gets called once when post init hook throws error #5592
 409
 4104.11.10 / 2017-09-03
 411====================
 412 * docs: add KeenIO tracking #5612
 413 * fix(schema): ensure validators declared with `.validate()` get copied with clone() #5607
 414 * fix: remove unnecessary jest warning #5480
 415 * fix(discriminator): prevent implicit discriminator schema id from clobbering base schema custom id #5591
 416 * fix(schema): hide schema objectid warning for non-hex strings of length 24 #5587
 417 * docs(populate): use story schema defined key author instead of creator #5578 [dmric](https://github.com/dmric)
 418 * docs(document): describe usage of `.set()` #5576
 419 * fix(document): ensure correct scope in single nested validators #5569
 420 * fix(populate): don't mark path as populated until populate() is done #5564
 421 * fix(document): make push()-ing a doc onto an empty array act as manual population #5504
 422 * fix(connection): emit timeout event on socket timeout #4513
 423
 4244.11.9 / 2017-08-27
 425===================
 426 * fix(error): avoid using arguments.callee because that breaks strict mode #5572
 427 * docs(schematypes): fix spacing #5567
 428 * fix(query): enforce binary subtype always propagates to mongodb #5551
 429 * fix(query): only skip castForQuery for mongoose arrays #5536
 430 * fix(browser): rely on browser entrypoint to decide whether to use BrowserDocument or NodeDocument #5480
 431
 4324.11.8 / 2017-08-23
 433===================
 434 * feat: add warning about using schema ObjectId as type ObjectId #5571 [efkan](https://github.com/efkan)
 435 * fix(schema): allow setting `id` property after schema was created #5570 #5548
 436 * docs(populate): remove confusing _ from populate docs #5560
 437 * fix(connection): expose parsed uri fields (host, port, dbname) when using openUri() #5556
 438 * docs: added type boolean to options documentation #5547 [ndabAP](https://github.com/ndabAP)
 439 * test: add test coverage for stopping/starting server #5524
 440 * fix(aggregate): pull read preference from schema by default #5522
 441
 4424.11.7 / 2017-08-14
 443===================
 444 * fix: correct properties when calling toJSON() on populated virtual #5544 #5442 [davidwu226](https://github.com/davidwu226)
 445 * docs: fix spelling #5535 [et](https://github.com/et)
 446 * fix(error): always set name before stack #5533
 447 * fix: add warning about running jest in jsdom environment #5532 #5513 #4943
 448 * fix(document): ensure overwriting a doc array cleans out individual docs #5523
 449 * fix(schema): handle creating arrays of single nested using type key #5521
 450 * fix: upgrade mongodb -> 2.2.31 to support user/pass options #5419
 451
 4524.11.6 / 2017-08-07
 453===================
 454 * fix: limiting number of async operations per time in insertMany #5529 [andresattler](https://github.com/andresattler)
 455 * fix: upgrade mongodb -> 2.2.30 #5517
 456 * fix(browserDocument): prevent stack overflow caused by double-wrapping embedded doc save() in jest #5513
 457 * fix(document): clear single nested doc when setting to empty object #5506
 458 * fix(connection): emit reconnected and disconnected events correctly with useMongoClient #5498
 459 * fix(populate): ensure nested virtual populate gets set even if top-level property is null #5431
 460
 4614.11.5 / 2017-07-30
 462===================
 463 * docs: fix link to $lookup #5516 [TalhaAwan](https://github.com/TalhaAwan)
 464 * fix: better parallelization for eachAsync #5502 [lchenay](https://github.com/lchenay)
 465 * docs(document): copy docs for save from model to doc #5493
 466 * fix(document): handle dotted virtuals in toJSON output #5473
 467 * fix(populate): restore user-provided limit after mutating so cursor() works with populate limit #5468
 468 * fix(query): don't throw StrictModeError if geo query with upsert #5467
 469 * fix(populate): propagate readPreference from query to populate queries by default #5460
 470 * docs: warn not to use arrow functions for statics and methods #5458
 471 * fix(query): iterate over all condition keys for setDefaultsOnInsert #5455
 472 * docs(connection): clarify server/replset/mongos option deprecation with useMongoClient #5442
 473
 4744.11.4 / 2017-07-23
 475===================
 476 * fix: handle next() errors in `eachAsync()` #5486 [lchenay](https://github.com/lchenay)
 477 * fix(schema): propagate runSettersOnQuery option to implicitly created schemas #5479 [https://github.com/ValYouW]
 478 * fix(query): run castConditions() correctly in update ops #5477
 479 * fix(query): ensure castConditions called for findOne and findOneAnd* #5477
 480 * docs: clarify relationship between $lookup and populate #5475 [TalhaAwan](https://github.com/TalhaAwan)
 481 * test: add coverage for arrays of arrays [zbjornson](https://github.com/zbjornson)
 482 * fix(middleware): ensure that error handlers for save get doc as 2nd param #5466
 483 * fix: handle strict: false correctly #5454 #5453 [wookieb](https://github.com/wookieb)
 484 * fix(query): apply schema excluded paths if only projection is a $slice #5450
 485 * fix(query): correct discriminator handling for schema `select: false` fields in schema #5448
 486 * fix(cursor): call next() in series when parallel option used #5446
 487 * chore: load bundled driver first to avoid packaging problem #5443 [prototypeme](https://github.com/prototypeme)
 488 * fix(query): defer condition casting until final exec #5434
 489 * fix(aggregate): don't rely on mongodb aggregate to put a cursor in the callback #5394
 490 * docs(aggregate): add useMongooseAggCursor docs #5394
 491 * docs(middleware): clarify context for document, query, and model middleware #5381
 492
 4934.11.3 / 2017-07-14
 494===================
 495 * fix(connection): remove .then() before resolving to prevent infinite recursion #5471
 496
 4974.11.2 / 2017-07-13
 498===================
 499 * docs: fix comment typo in connect example #5435 [ConnorMcF](https://github.com/ConnorMcF)
 500 * fix(update): correctly cast document array in update validators with exec() #5430
 501 * fix(connection): handle autoIndex with useMongoClient #5423
 502 * fix(schema): handle `type: [Array]` in schemas #5416
 503 * fix(timestamps): if overwrite is set and there's a $set, use $set instead of top-level update #5413
 504 * fix(document): don't double-validate deeply nested doc array elements #5411
 505 * fix(schematype): clone default objects so default not shared across object instances unless `shared` specified #5407
 506 * fix(document): reset down the nested subdocs when resetting parent doc #5406
 507 * fix: don't pass error arg twice to error handlers #5405
 508 * fix(connection): make openUri() return connection decorated with then() and catch() #5404
 509 * fix: enforce $set on an array must be an array #5403
 510 * fix(document): don't crash if calling `validateSync()` after overwriting doc array index #5389
 511 * fix(discriminator): ensure discriminator key doesn't count as user-selected field for projection #4629
 512
 5134.11.1 / 2017-07-02
 514===================
 515* docs: populate virtuals fix justOne description #5427 [fredericosilva](https://github.com/fredericosilva)
 516 * fix(connection): make sure to call onOpen in openUri() #5404
 517 * docs(query): justOne is actually single, and it default to false #5402 [zbjornson](https://github.com/zbjornson)
 518 * docs: fix small typo in lib/schema.js #5398 #5396 [pjo336](https://github.com/pjo336)
 519 * fix: emit remove on single nested subdocs when removing parent #5388
 520 * fix(update): handle update with defaults and overwrite but no update validators #5384
 521 * fix(populate): handle undefined refPath values in middle of array #5377
 522 * fix(document): ensure consistent setter context for single nested #5363
 523 * fix(query): support runSettersOnQuery as query option #5350
 524
 5254.11.0 / 2017-06-25
 526===================
 527 * feat(query): execute setters with query as context for `runSettersOnQuery` #5339
 528 * feat(model): add translateAliases function #5338 [rocketspacer](https://github.com/rocketspacer)
 529 * feat(connection): add `useMongoClient` and `openUri` functions, deprecate current connect logic #5304
 530 * refactor(schema): make id virtual not access doc internals #5279
 531 * refactor: handle non-boolean lean #5279
 532 * feat(cursor): add addCursorFlag() support to query and agg cursors #4814
 533 * feat(cursor): add parallel option to eachAsync #4244
 534 * feat(schema): allow setting custom error constructor for custom validators #4009
 535
 5364.10.8 / 2017-06-21
 537===================
 538 * docs: fix small formatting typo on schematypes #5374 [gianpaj](https://github.com/gianpaj)
 539 * fix(model): allow null as an _id #5370
 540 * fix(populate): don't throw async uncaught exception if model not found in populate #5364
 541 * fix: correctly cast decimals in update #5361
 542 * fix(error): don't use custom getter for ValidationError message #5359
 543 * fix(query): handle runSettersOnQuery in built-in _id setter #5351
 544 * fix(document): ensure consistent context for nested doc custom validators #5347
 545
 5464.10.7 / 2017-06-18
 547===================
 548 * docs(validation): show overriding custom validator error with 2nd cb arg #5358
 549 * fix: `parseOption` mutates user passed option map #5357 [igwejk](https://github.com/igwejk)
 550 * docs: fix guide.jade typo #5356 [CalebAnderson2014](https://github.com/CalebAnderson2014)
 551 * fix(populate): don't set populate virtual to ids when match fails #5336
 552 * fix(query): callback with cast error if remove and delete* args have a cast error #5323
 553
 5544.10.6 / 2017-06-12
 555===================
 556 * fix(cursor): handle custom model option for populate #5334
 557 * fix(populate): handle empty virtual populate with Model.populate #5331
 558 * fix(model): make ensureIndexes() run with autoIndex: false unless called internally #5328 #5324 #5317
 559 * fix: wait for all connections to close before resolving disconnect() promise #5316
 560 * fix(document): handle setting populated path with custom typeKey in schema #5313
 561 * fix(error): add toJSON helper to ValidationError so `message` shows up with JSON.stringify #5309
 562 * feat: add `getPromiseConstructor()` to prevent need for `mongoose.Promise.ES6` #5305
 563 * fix(document): handle conditional required with undefined props #5296
 564 * fix(model): clone options before inserting in save() #5294
 565 * docs(populate): clarify that multiple populate() calls on same path overwrite #5274
 566
 5674.10.5 / 2017-06-06
 568===================
 569 * chore: improve contrib guide for building docs #5312
 570 * fix(populate): handle init-ing nested virtuals properly #5311
 571 * fix(update): report update validator error if required path under single nested doc not set
 572 * fix(schema): remove default validate pre hook that was causing issues with jest #4943
 573
 5744.10.4 / 2017-05-29
 575===================
 576 * chore: dont store test data in same directory #5303
 577 * chore: add data dirs to npmignore #5301 [Starfox64](https://github.com/Starfox64)
 578 * docs(query): add docs about runSettersOnQuery #5300
 579
 5804.10.3 / 2017-05-27
 581===================
 582 * docs: correct inconsistent references to updateOne and replaceOne #5297 [dhritzkiv](https://github.com/dhritzkiv)
 583 * docs: fix dropdowns in docs #5292 [nathanallen](https://github.com/nathanallen)
 584 * docs: add description of alias option #5287
 585 * fix(document): prevent infinite loop if validating nested array #5282
 586 * fix(schema): correctly handle ref ObjectIds from different mongoose libs #5259
 587 * fix(schema): load child class methods after base class methods to allow override #5227
 588
 5894.10.2 / 2017-05-22
 590===================
 591 * fix: bump ms -> 2.0.0 and mquery -> 2.3.1 for minor security vulnerability #5275
 592
 5934.10.1 / 2017-05-21
 594===================
 595 * fix(aggregate): handle sorting by text score correctly #5258
 596 * fix(populate): handle doc.populate() with virtuals #5240
 597 * fix(schema): enforce that `_id` is never null #5236
 598
 5994.10.0 / 2017-05-18
 600===================
 601 * fix(schema): update clone method to include indexes #5268 [clozanosanchez](https://github.com/clozanosanchez)
 602 * feat(schema): support aliases #5184 [rocketspacer](https://github.com/rocketspacer)
 603 * feat(aggregate): add mongoose-specific aggregation cursor option #5145
 604 * refactor(model): make sharding into a plugin instead of core #5105
 605 * fix(document): make nested doc mongoose internals not enumerable again #5078
 606 * feat(model): pass params to pre hooks #5064
 607 * feat(timestamps): support already defined timestamp paths in schema #4868
 608 * feat(query): add runSettersOnQuery option #4569
 609 * fix(query): add strictQuery option that throws when not querying on field not in schema #4136
 610 * fix(update): more complete handling for overwrite option with update validators #3556
 611 * feat: support `unique: true` in arrays via the mongoose-unique-array plugin #3347
 612 * fix(model): always emit 'index', even if no indexes #3347
 613 * fix(schema): set unique indexes on primitive arrays #3347
 614 * feat(validation): include failed paths in error message and inspect output #3064 #2135
 615 * fix(model): return saved docs when create() fails #2190
 616
 6174.9.10 / 2017-05-17
 618===================
 619 * fix(connection): ensure callback arg to openSet() is handled properly #5249
 620 * docs: remove dead plugins repo and add content links #5247
 621 * fix(model): skip index build if connecting after model init and autoIndex false #5176
 622
 6234.9.9 / 2017-05-13
 624==================
 625 * docs: correct value for Query#regex() #5230
 626 * fix(connection): don't throw if .catch() on open() promise #5229
 627 * fix(schema): allow update with $currentDate for updatedAt to succeed #5222
 628 * fix(model): versioning doesn't fail if version key undefined #5221 [basileos](https://github.com/basileos)
 629 * fix(document): don't emit model error if callback specified for consistency with docs #5216
 630 * fix(document): handle errors in subdoc pre validate #5215
 631
 6324.9.8 / 2017-05-07
 633==================
 634 * docs(subdocs): rewrite subdocs guide #5217
 635 * fix(document): avoid circular JSON if error in doc array under single nested subdoc #5208
 636 * fix(document): set intermediate empty objects for deeply nested undefined paths before path itself #5206
 637 * fix(schema): throw error if first param to schema.plugin() is not a function #5201
 638 * perf(document): major speedup in validating subdocs (50x in some cases) #5191
 639
 6404.9.7 / 2017-04-30
 641==================
 642 * docs: fix typo #5204 [phutchins](https://github.com/phutchins)
 643 * fix(schema): ensure correct path for deeply nested schema indexes #5199
 644 * fix(schema): make remove a reserved name #5197
 645 * fix(model): handle Decimal type in insertMany correctly #5190
 646 * fix: upgrade kareem to handle async pre hooks correctly #5188
 647 * docs: add details about unique not being a validator #5179
 648 * fix(validation): handle returning a promise with isAsync: true #5171
 649
 6504.9.6 / 2017-04-23
 651==================
 652 * fix: update `parentArray` references when directly assigning document arrays #5192 [jhob](https://github.com/jhob)
 653 * docs: improve schematype validator docs #5178 [milesbarr](https://github.com/milesbarr)
 654 * fix(model): modify discriminator() class in place #5175
 655 * fix(model): handle bulkWrite updateMany casting #5172 [tzellman](https://github.com/tzellman)
 656 * docs(model): fix replaceOne example for bulkWrite #5168
 657 * fix(document): don't create a new array subdoc when creating schema array #5162
 658 * fix(model): merge query hooks from discriminators #5147
 659 * fix(document): add parent() function to subdocument to match array subdoc #5134
 660
 6614.9.5 / 2017-04-16
 662==================
 663 * fix(query): correct $pullAll casting of null #5164 [Sebmaster](https://github.com/Sebmaster)
 664 * docs: add advanced schemas docs for loadClass #5157
 665 * fix(document): handle null/undefined gracefully in applyGetters() #5143
 666 * fix(model): add resolveToObject option for mapReduce with ES6 promises #4945
 667
 6684.9.4 / 2017-04-09
 669==================
 670 * fix(schema): clone query middleware correctly #5153 #5141 [clozanosanchez](https://github.com/clozanosanchez)
 671 * docs(aggregate): fix typo #5142
 672 * fix(query): cast .$ update to underlying array type #5130
 673 * fix(populate): don't mutate populate result in place #5128
 674 * fix(query): handle $setOnInsert consistent with $set #5126
 675 * docs(query): add strict mode option for findOneAndUpdate #5108
 676
 6774.9.3 / 2017-04-02
 678==================
 679 * docs: document.js fixes for functions prepended with `$` #5131 [krmannix](https://github.com/krmannix)
 680 * fix: Avoid exception on constructor check #5129 [monkbroc](https://github.com/monkbroc)
 681 * docs(schematype): explain how to use `isAsync` with validate() #5125
 682 * docs(schematype): explain custom message with required function #5123
 683 * fix(populate): only apply refPath duplicate id optimization if not array #5114
 684 * fix(document): copy non-objects to doc when init() #5111
 685 * perf(populate): dont clone whole options every time #5103
 686 * feat(document): add isDirectSelected() to minimize isSelected() changes #5063
 687 * docs(schematypes): explain some subtleties with arrays #5059
 688
 6894.9.2 / 2017-03-26
 690==================
 691 * fix(discriminator): handle class names consistently #5104
 692 * fix(schema): make clone() work with reusing discriminator schemas #5098
 693 * fix(querycursor): run pre find hooks with .cursor() #5096
 694 * fix(connection): throw error if username:password includes @ or : #5091
 695 * fix(timestamps): handle overwriting createdAt+updatedAt consistently #5088
 696 * fix(document): ensure subdoc post save runs after parent save #5085
 697 * docs(model): improve update docs #5076 [bertolo1988](https://github.com/bertolo1988)
 698
 6994.9.1 / 2017-03-19
 700==================
 701 * fix(query): handle $type for arrays #5080 #5079 [zoellner](https://github.com/zoellner)
 702 * fix(model): handle ordered param for `insertMany` validation errors #5072 [sjorssnoeren](https://github.com/sjorssnoeren)
 703 * fix(populate): avoid duplicate ids in dynref queries #5054
 704 * fix(timestamps): dont set timestamps in update if user set it #5045
 705 * fix(update): dont double-call setters on arrays #5041
 706 * fix: upgrade driver -> 2.2.25 for jest fix #5033
 707 * fix(model): get promise each time save() is called rather than once #5030
 708 * fix(connection): make connect return value consistent #5006
 709
 7104.9.0 / 2017-03-13
 711==================
 712 * feat(document): return this from `depopulate()` #5027
 713 * fix(drivers): stop emitting timeouts as errors #5026
 714 * feat(schema): add a clone() function for schemas #4983
 715 * feat(query): add rawResult option to replace passRawResult, deprecate passRawResult #4977 #4925
 716 * feat(schematype): support isAsync validator option and handle returning promises from validators, deprecate implicit async validators #4290
 717 * feat(query): add `replaceOne()`, `deleteOne()`, `deleteMany()` #3998
 718 * feat(model): add `bulkWrite()` #3998
 719
 7204.8.7 / 2017-03-12
 721==================
 722 * fix(model): if last arg in spread is falsy, treat it as a callback #5061
 723 * fix(document): use $hook instead of hook to enable 'hook' as a path name #5047
 724 * fix(populate): dont select foreign field if parent field is selected #5037
 725 * fix(populate): handle passing no args to query.populate #5036
 726 * fix(update): use correct method for casting nested arrays #5032
 727 * fix(discriminator): handle array discriminators when casting $push #5009
 728
 7294.8.6 / 2017-03-05
 730==================
 731 * docs(document): remove text that implies that transform is false by default #5023
 732 * fix(applyHooks): dont wrap a function if it is already wrapped #5019
 733 * fix(document): ensure nested docs' toObject() clones #5008
 734
 7354.8.5 / 2017-02-25
 736==================
 737 * fix: check for empty schemaPath before accessing property $isMongooseDocumentArray #5017 [https://github.com/randyhoulahan](randyhoulahan)
 738 * fix(discriminators): handle create() and push() for embedded discriminators #5001
 739 * fix(querycursor): ensure close emitted after last data event #4998
 740 * fix(discriminators): remove fields not selected in child when querying by base model #4991
 741
 7424.8.4 / 2017-02-19
 743==================
 744 * docs(discriminators): explain embedded discriminators #4997
 745 * fix(query): fix TypeError when findOneAndUpdate errors #4990
 746 * fix(update): handle nested single embedded in update validators correctly #4989
 747 * fix(browser): make browser doc constructor not crash #4987
 748
 7494.8.3 / 2017-02-15
 750==================
 751 * chore: upgrade mongodb driver -> 2.2.24
 752 * docs(connections): addd some details about callbacks #4986
 753 * fix: ensure class is created with new keyword #4972 #4947 [benhjames](https://github.com/benhjames)
 754 * fix(discriminator): add applyPluginsToDiscriminators option #4965
 755 * fix(update): properly cast array subdocs when casting update #4960
 756 * fix(populate): ensure foreign field is selected for virtual populate #4959
 757 * docs(query): document some query callback params #4949
 758 * fix(document): ensure errors in validators get caught #2185
 759
 7604.8.2 / 2017-02-10
 761==================
 762 * fix(update): actually run validators on addToSet #4953
 763 * fix(update): improve buffer error handling #4944 [ValYouW](https://github.com/ValYouW)
 764 * fix(discriminator): handle subclassing with loadClass correctly #4942
 765 * fix(query): allow passing Map to sort() #4941
 766 * fix(document): handle setting discriminator doc #4935
 767 * fix(schema): return correct value from pre init hook #4928
 768 * fix(query): ensure consistent params in error handlers if pre hook errors #4927
 769
 7704.8.1 / 2017-01-30
 771==================
 772 * fix(query): handle $exists for arrays and embedded docs #4937
 773 * fix(query): handle passing string to hint() #4931
 774
 7754.8.0 / 2017-01-28
 776==================
 777 * feat(schema): add saveErrorIfNotFound option and $where property #4924 #4004
 778 * feat(query): add $in implicitly if passed an array #4912 [QuotableWater7](https://github.com/QuotableWater7)
 779 * feat(aggregate): helper for $facet #4904 [varunjayaraman](https://github.com/varunjayaraman)
 780 * feat(query): add collation method #4839
 781 * feat(schema): propogate strict option to implicit array subschemas #4831 [dkrosso](https://github.com/dkrosso)
 782 * feat(aggregate): add helper for graphLookup #4819 [varunjayaraman](https://github.com/varunjayaraman)
 783 * feat(types): support Decimal128 #4759
 784 * feat(aggregate): add eachAsync() to aggregate cursor #4300
 785 * feat(query): add updateOne and updateMany #3997
 786 * feat(model): support options for insertMany #3893
 787 * fix(document): run validation on single nested docs if not directly modified #3884
 788 * feat(model): use discriminator constructor based on discriminatorKey in create() #3624
 789 * feat: pass collection as context to debug function #3261
 790 * feat(query): support push and addToSet for update validators #2933
 791 * perf(document): refactor registerHooksFromSchema so hooks are defined on doc prototype #2754
 792 * feat(types): add discriminator() function to doc arrays #2723 #1856
 793 * fix(populate): return an error if sorting underneath a doc array #2202
 794
 7954.7.9 / 2017-01-27
 796==================
 797 * fix(query): handle casting $exists under $not #4933
 798 * chore: upgrade mongodb -> 2.2.22 re: #4931
 799
 8004.7.8 / 2017-01-23
 801==================
 802 * fix(populate): better handling for virtual populate under arrays #4923
 803 * docs: upgrade contributors count #4918 [AdamZaczek](https://github.com/AdamZaczek)
 804 * fix(query): don't set nested path default if setting parent path #4911
 805 * docs(promise): add missing bracket #4907
 806 * fix(connection): ensure error handling is consistently async #4905
 807 * fix: handle authMechanism in query string #4900
 808 * fix(document): ensure error handlers run for validate #4885
 809
 8104.7.7 / 2017-01-15
 811==================
 812 * fix(utils): don't crash if to[key] is null #4881
 813 * fix: upgrade mongodb -> 2.2.21 #4867
 814 * fix: add a toBSON to documents for easier querying #4866
 815 * fix: suppress bluebird warning #4854 [davidwu226](https://github.com/davidwu226)
 816 * fix(populate): handle nested virtuals in virtual populate #4851
 817
 8184.7.6 / 2017-01-02
 819==================
 820 * fix(model): allow passing non-array to insertMany #4846
 821 * fix(populate): use base model name if no discriminator for backwards compat #4843
 822 * fix: allow internal validate callback to be optional #4842 [arciisine](https://github.com/arciisine)
 823 * fix(document): don't skip pointCut if save not defined (like in browser doc) #4841
 824 * chore: improve benchmarks #4838 [billouboq](https://github.com/billouboq)
 825 * perf: remove some unused parameters #4837 [billouboq](https://github.com/billouboq)
 826 * fix(query): don't call error handler if passRawResult is true and no error occurred #4836
 827
 8284.7.5 / 2016-12-26
 829==================
 830 * docs(model): fix spelling mistake #4828 [paulinoj](https://github.com/paulinoj)
 831 * fix(aggregate): remove unhandled rejection when using aggregate.then() #4824
 832 * perf: remove try/catch that kills optimizer #4821
 833 * fix(model): handles populating with discriminators that may not have a ref #4817
 834 * fix(document): handle setting array of discriminators #3575
 835
 8364.7.4 / 2016-12-21
 837==================
 838 * docs: fix typo #4810 [GEEKIAM](https://github.com/GEEKIAM)
 839 * fix(query): timestamps with $push + $each #4805
 840 * fix(document): handle buffers correctly in minimize #4800
 841 * fix: don't disallow overwriting default and cast fns #4795 [pdspicer](https://github.com/pdspicer)
 842 * fix(document): don't convert single nested docs to POJOs #4793
 843 * fix(connection): handle reconnect to replica set correctly #4972 [gfzabarino](https://github.com/gfzabarino)
 844
 8454.7.3 / 2016-12-16
 846==================
 847 * fix: upgrade mongodb driver -> 2.2.16 for several bug fixes and 3.4 support #4799
 848 * fix(model): ensure discriminator key is correct for child schema on discriminator #4790
 849 * fix(document): handle mark valid in subdocs correctly #4778
 850 * fix(query): check for objects consistently #4775
 851
 8524.7.2 / 2016-12-07
 853==================
 854 * test(populate): fix justOne test #4772 [cblanc](https://github.com/cblanc)
 855 * chore: fix benchmarks #4769 [billouboq](https://github.com/billouboq)
 856 * fix(document): handle setting subdoc to null after setting parent doc #4766
 857 * fix(query): support passRawResult with lean #4762 #4761 [mhfrantz](https://github.com/mhfrantz)
 858 * fix(query): throw StrictModeError if upsert with nonexisting field in condition #4757
 859 * test: fix a couple of sort tests #4756 [japod](https://github.com/japod)
 860 * chore: upgrade mongodb driver -> 2.2.12 #4753 [mdlavin](https://github.com/mdlavin)
 861 * fix(query): handle update with upsert and overwrite correctly #4749
 862
 8634.7.1 / 2016-11-30
 864==================
 865 * fix(schema): throw error if you use prototype as a schema path #4746
 866 * fix(schema): throw helpful error if you define a virtual with the same path as a real path #4744
 867 * fix(connection): make createConnection not throw rejected promises #4742
 868 * fix(populate): allow specifiying options in model schema #4741
 869 * fix(document): handle selected nested elements with defaults #4739
 870 * fix(query): add model to cast error if possible #4729
 871 * fix(query): handle timestamps with overwrite #4054
 872
 8734.7.0 / 2016-11-23
 874==================
 875 * docs: clean up schematypes #4732 [kidlj](https://github.com/kidlj)
 876 * perf: only get stack when necessary with VersionError #4726 [Sebmaster](https://github.com/Sebmaster)
 877 * fix(query): ensure correct casting when setting array element #4724
 878 * fix(connection): ensure db name gets set when you pass 4 params #4721
 879 * fix: prevent TypeError in node v7 #4719 #4706
 880 * feat(document): support .set() on virtual subpaths #4716
 881 * feat(populate): support populate virtuals on nested schemas #4715
 882 * feat(querycursor): support transform option and .map() #4714 #4705 [cblanc](https://github.com/cblanc)
 883 * fix(document): dont set defaults on not-selected nested paths #4707
 884 * fix(populate): don't throw if empty string passed to populate #4702
 885 * feat(model): add `loadClass()` function for importing schema from ES6 class #4668 [rockmacaca](https://github.com/rockmacaca)
 886
 8874.6.8 / 2016-11-14
 888==================
 889 * fix(querycursor): clear stack when iterating onto next doc #4697
 890 * fix: handle null keys in validation error #4693 #4689 [arciisine](https://github.com/arciisine)
 891 * fix(populate): handle pre init middleware correctly with populate virtuals #4683
 892 * fix(connection): ensure consistent return value for open and openSet #4659
 893 * fix(schema): handle falsy defaults for arrays #4620
 894
 8954.6.7 / 2016-11-10
 896==================
 897 * fix(document): only invalidate in subdoc if using update validators #4681
 898 * fix(document): don't create subdocs when excluded in projection #4669
 899 * fix(document): ensure single embedded schema validator runs with correct context #4663
 900 * fix(document): make sure to depopulate top level for sharding #4658
 901 * fix(connection): throw more helpful error when .model() called incorrectly #4652
 902 * fix(populate): throw more descriptive error when trying to populate a virtual that doesn't have proper options #4602
 903 * fix(document): ensure subtype gets set properly when saving with a buffer id #4506
 904 * fix(query): handle setDefaultsOnInsert with defaults on doc arrays #4456
 905 * fix(drivers): make debug output better by calling toBSON() #4356
 906
 9074.6.6 / 2016-11-03
 908==================
 909 * chore: upgrade deps #4674 [TrejGun](https://github.com/TrejGun)
 910 * chore: run tests on node v7 #4673 [TrejGun](https://github.com/TrejGun)
 911 * perf: make setDefaultsOnInsert more efficient if upsert is off #4672 [CamHenlin](https://github.com/CamHenlin)
 912 * fix(populate): ensure document array is returned #4656
 913 * fix(query): cast doc arrays with positionals correctly for update #4655
 914 * fix(document): ensure single nested doc validators run with correct context #4654
 915 * fix: handle reconnect failed error in new version of driver #4653 [loris](https://github.com/loris)
 916 * fix(populate): if setting a populated doc, take its id #4632
 917 *  fix(populate): handle populated virtuals in init #4618
 918
 9194.6.5 / 2016-10-23
 920==================
 921 * docs: fix grammar issues #4642 #4640 #4639 [silvermanj7](https://github.com/silvermanj7)
 922 * fix(populate): filter out nonexistant values for dynref #4637
 923 * fix(query): handle $type as a schematype operator #4632
 924 * fix(schema): better handling for uppercase: false and lowercase: false #4622
 925 * fix(query): don't run transforms on updateForExec() #4621
 926 * fix(query): handle id = 0 in findById #4610
 927 * fix(query): handle buffers in mergeClone #4609
 928 * fix(document): handle undefined with conditional validator for validateSync #4607
 929 * fix: upgrade to mongodb driver 2.2.11 #4581
 930 * docs(schematypes): clarify schema.path() #4518
 931 * fix(query): ensure path is defined before checking in timestamps #4514
 932 * fix(model): set version key in upsert #4505
 933 * fix(document): never depopulate top-level doc #3057
 934 * refactor: ensure sync for setting non-capped collections #2690
 935
 9364.6.4 / 2016-10-16
 937==================
 938 * fix(query): cast $not correctly #4616 #4592 [prssn](https://github.com/prssn)
 939 * fix: address issue with caching global plugins #4608 #4601 [TrejGun](https://github.com/TrejGun)
 940 * fix(model): make sure to depopulate in insertMany #4590
 941 * fix(model): buffer autoIndex if bufferCommands disabled #4589
 942 * fix(populate): copy ids array before modifying #4585
 943 * feat(schema): add retainKeyOrder prop #4542
 944 * fix(document): return isModified true for children of direct modified paths #4528
 945 * fix(connection): add dropDatabase() helper #4490
 946 * fix(model): add usePushEach option for schemas #4455
 947 * docs(connections): add some warnings about buffering #4413
 948 * fix: add ability to set promise implementation in browser #4395
 949
 9504.6.3 / 2016-10-05
 951==================
 952 * fix(document): ensure single nested docs get initialized correctly when setting nested paths #4578
 953 * fix: turn off transforms when writing nested docs to db #4574
 954 * fix(document): don't set single nested subdocs to null when removing parent doc #4566
 955 * fix(model): ensure versionKey gets set in insertMany #4561
 956 * fix(schema): handle typeKey in arrays #4548
 957 * feat(schema): set $implicitlyCreated on schema if created by interpretAsType #4443
 958
 9594.6.2 / 2016-09-30
 960==================
 961 * chore: upgrade to async 2.0.1 internally #4579 [billouboq](https://github.com/billouboq)
 962 * fix(types): ensure nested single doc schema errors reach update validators #4557 #4519
 963 * fix(connection): handle rs names with leading numbers (muri 1.1.1) #4556
 964 * fix(model): don't throw if method name conflicts with Object.prototype prop #4551
 965 * docs: fix broken link #4544 [VFedyk](https://github.com/VFedyk)
 966 * fix: allow overwriting model on mongoose singleton #4541 [Nainterceptor](https://github.com/Nainterceptor)
 967 * fix(document): don't use init: true when building doc defaults #4540
 968 * fix(connection): use replSet option if replset not specified #4535
 969 * fix(query): cast $not objects #4495
 970
 9714.6.1 / 2016-09-20
 972==================
 973 * fix(query): improve handling of $not with $elemMatch #4531 #3719 [timbowhite](https://github.com/timbowhite)
 974 * fix: upgrade mongodb -> 2.2.10 #4517
 975 * chore: fix webpack build issue #4512 [saiichihashimoto](https://github.com/saiichihashimoto)
 976 * fix(query): emit error on next tick when exec callback errors #4500
 977 * test: improve test case #4496 [isayme](https://github.com/isayme)
 978 * fix(schema): use same check for array types and top-level types #4493
 979 * style: fix indentation in docs #4489 [dhurlburtusa](https://github.com/dhurlburtusa)
 980 * fix(schema): expose original object passed to constructor #4486
 981 * fix(query): handle findOneAndUpdate with array of arrays #4484 #4470 [fedotov](https://github.com/fedotov)
 982 * feat(document): add $ignore to make a path ignored #4480
 983 * fix(query): properly handle setting single embedded in update #4475 #4466 #4465
 984 * fix(updateValidators): handle single nested schema subpaths correctly #4479
 985 * fix(model): throw handy error when method name conflicts with property name #4475
 986 * fix(schema): handle .set() with array field #4472
 987 * fix(query): check nested path when avoiding double-validating Mixed #4441
 988 * fix(schema): handle calling path.trim() with no args correctly #4042
 989
 9904.6.0 / 2016-09-02
 991==================
 992 * docs(document): clarify the findById and findByIdAndUpdate examples #4471 [mdcanham](https://github.com/mdcanham)
 993 * docs(schematypes): add details re: options #4452
 994 * docs(middleware): add docs for insertMany hooks #4451
 995 * fix(schema): create new array when copying from existing object to preserve change tracking #4449
 996 * docs: fix typo in index.jade #4448
 997 * fix(query): allow array for populate options #4446
 998 * fix(model): create should not cause unhandle reject promise #4439
 999 * fix: upgrade to mongodb driver 2.2.9 #4363 #4341 #4311 (see [comments here](https://github.com/mongodb/js-bson/commit/aa0b54597a0af28cce3530d2144af708e4b66bf0#commitcomment-18850498) if you use node 0.10)
1000
10014.5.10 / 2016-08-23
1002===================
1003 * docs: fix typo on documents.jade #4444 [Gabri3l](https://github.com/Gabri3l)
1004 * chore: upgrade mocha to 3.0.2 #4437 [TrejGun](https://github.com/TrejGun)
1005 * fix: subdocuments causing error with parent timestamp on update #4434 [dyang108](https://github.com/dyang108)
1006 * fix(query): don't crash if timestamps on and update doesn't have a path #4425 #4424 #4418
1007 * fix(query): ensure single nested subdoc is hydrated when running update validators #4420
1008 * fix(query): cast non-$geometry operators for $geoWithin #4419
1009 * docs: update contributor count #4415 [AdamZaczek](https://github.com/AdamZaczek)
1010 * docs: add more clarification re: the index event #4410
1011 * fix(document): only skip modifying subdoc path if parent is direct modified #4405
1012 * fix(schema): throw cast error if provided date invalid #4404
1013 * feat(error): use util.inspect() so CastError never prints "[object Object]" #4398
1014 * fix(model): dont error if the discriminator key is unchanged #4387
1015 * fix(query): don't throw unhandled rejection with bluebird when using cbs #4379
1016
10174.5.9 / 2016-08-14
1018==================
1019 * docs: add mixed schema doc for Object literal #4400 [Kikobeats](https://github.com/Kikobeats)
1020 * fix(query): cast $geoWithin and convert mongoose objects to POJOs before casting #4392
1021 * fix(schematype): dont cast defaults without parent doc #4390
1022 * fix(query): disallow passing empty string to findOne() #4378
1023 * fix(document): set single nested doc isNew correctly #4369
1024 * fix(types): checks field name correctly with nested arrays and populate #4365
1025 * fix(drivers): make debug output copy-pastable into mongodb shell #4352
1026 * fix(services): run update validators on nested paths #4332
1027 * fix(model): handle typeKey with discriminators #4339
1028 * fix(query): apply timestamps to child schemas when explicitly specified in update #4049
1029 * fix(schema): set prefix as nested path with add() #1730
1030
10314.5.8 / 2016-08-01
1032==================
1033 * fix(model): make changing the discriminator key cause a cast error #4374
1034 * fix(query): pass projection fields to cursor #4371 #4342 [Corei13](https://github.com/Corei13)
1035 * fix(document): support multiple paths for isModified #4370 [adambuczynski](https://github.com/adambuczynski)
1036 * fix(querycursor): always cast fields before returning cursor #4355
1037 * fix(query): support projection as alias for fields in findOneAndUpdate #4315
1038 * fix(schema): treat index false + unique false as no index #4304
1039 * fix(types): dont mark single nested subpath as modified if whole doc already modified #4224
1040
10414.5.7 / 2016-07-25
1042==================
1043 * fix(document): ensure no unhandled rejections if callback specified for save #4364
1044
10454.5.6 / 2016-07-23
1046==================
1047 * fix(schema): don't overwrite createdAt if it isn't selected #4351 [tusbar](https://github.com/tusbar)
1048 * docs(api): fix link to populate() and add a new one from depopulate() #4345 [Delapouite](https://github.com/Delapouite)
1049 * fix(types): ownerDocument() works properly with single nested docs #4344 [vichle](https://github.com/vichle)
1050 * fix(populate): dont use findOne when justOne option set #4329
1051 * fix(document): dont trigger .then() deprecated warning when calling doc.remove() #4291
1052 * docs(connection): add promiseLibrary option #4280
1053 * fix(plugins): apply global plugins to subschemas #4271
1054 * fix(model): ensure `ensureIndex()` never calls back in the same tick #4246
1055 * docs(schema): improve post hook docs on schema #4238
1056
10574.5.5 / 2016-07-18
1058==================
1059 * fix(document): handle setting root to empty obj if minimize false #4337
1060 * fix: downgrade to mongodb 2.1.18 #4335 #4334 #4328 #4323
1061 * perf(types): remove defineProperty usage in documentarray #4333
1062 * fix(query): correctly pass model in .toConstructor() #4318
1063 * fix(services): avoid double-validating mixed types with update validators #4305
1064 * docs(middleware): add docs describing error handling middleware #4229
1065 * fix(types): throw correct error when invalidating doc array #3602
1066
10674.5.4 / 2016-07-11
1068==================
1069 * fix(types): fix removing embedded documents #4309 [RoCat](https://github.com/RoCat)
1070 * docs: various docs improvements #4302 #4294 [simonxca](https://github.com/simonxca)
1071 * fix: upgrade mongodb -> 2.1.21 #4295 #4202 [RoCat](https://github.com/RoCat)
1072 * fix(populate): convert single result to array for virtual populate because of lean #4288
1073 * fix(populate): handle empty results for populate virtuals properly #4285 #4284
1074 * fix(query): dont cast $inc to number if type is long #4283
1075 * fix(types): allow setting single nested doc to null #4281
1076 * fix(populate): handle deeply nested virtual populate #4278
1077 * fix(document): allow setting empty obj if strict mode is false #4274
1078 * fix(aggregate): allow passing obj to .unwind() #4239
1079 * docs(document): add return statements to transform examples #1963
1080
10814.5.3 / 2016-06-30
1082==================
1083 * fix(query): pass correct options to QueryCursor #4277 #4266
1084 * fix(querycursor): handle lean option correctly #4276 [gchudnov](https://github.com/gchudnov)
1085 * fix(document): fix error handling when no error occurred #4275
1086 * fix(error): use strict mode for version error #4272
1087 * docs(populate): fix crashing compilation for populate.jade #4267
1088 * fix(populate): support `justOne` option for populate virtuals #4263
1089 * fix(populate): ensure model param gets used for populate virtuals #4261 #4243
1090 * fix(querycursor): add ability to properly close the cursor #4258
1091 * docs(model): correct link to Document #4250
1092 * docs(populate): correct path for refPath populate #4240
1093 * fix(document): support validator.isEmail as validator #4064
1094
10954.5.2 / 2016-06-24
1096==================
1097 * fix(connection): add checks for collection presence for `onOpen` and `onClose` #4259 [nodkz](https://github.com/nodkz)
1098 * fix(cast): allow strings for $type operator #4256
1099 * fix(querycursor): support lean() #4255 [pyramation](https://github.com/pyramation)
1100 * fix(aggregate): allow setting noCursorTimeout option #4241
1101 * fix(document): handle undefined for Array.pull #4222 [Sebmaster](https://github.com/Sebmaster)
1102 * fix(connection): ensure promise.catch() catches initial connection error #4135
1103 * fix(document): show additional context for VersionError #2633
1104
11054.5.1 / 2016-06-18
1106==================
1107 * fix(model): ensure wrapped insertMany() returns a promise #4237
1108 * fix(populate): dont overwrite populateVirtuals when populating multiple paths #4234
1109 * docs(model): clarify relationship between create() and save() #4233
1110 * fix(types): handle option param in subdoc remove() #4231 [tdebarochez](https://github.com/tdebarochez)
1111 * fix(document): dedupe modified paths #4226 #4223 [adambuczynski](https://github.com/adambuczynski)
1112 * fix(model): don't modify user-provided options object #4221
1113 * fix(document): handle setting nested path to empty object #4218 #4182
1114 * fix(document): clean subpaths when removing single nested #4216
1115 * fix(document): don't force transform on subdocs with inspect #4213
1116 * fix(error): allow setting .messages object #4207
1117
11184.5.0 / 2016-06-13
1119==================
1120 * feat(query): added Query.prototype.catch() #4215 #4173 [adambuczynski](https://github.com/adambuczynski)
1121 * feat(query): add Query.prototype.cursor() as a .stream() alternative #4117 #3637 #1907
1122 * feat(document): add markUnmodified() function #4092 [vincentcr](https://github.com/vincentcr)
1123 * feat(aggregate): convert aggregate object to a thenable #3995 #3946 [megagon](https://github.com/megagon)
1124 * perf(types): remove defineProperties call for array (**Note:** Because of this, a mongoose array will no longer `assert.deepEqual()` a plain old JS array) #3886
1125 * feat(model): add hooks for insertMany() #3846
1126 * feat(schema): add support for custom query methods #3740 #2372
1127 * feat(drivers): emit error on 'serverClosed' because that means that reconnect failed #3615
1128 * feat(model): emit error event when callback throws exception #3499
1129 * feat(model): inherit options from discriminator base schema #3414 #1818
1130 * feat(populate): expose mongoose-populate-virtuals inspired populate API #2562
1131 * feat(document): trigger remove hooks on subdocs when removing parent #2348
1132 * feat(schema): add support for express-style error handling middleware #2284
1133 * fix(model): disallow setting discriminator key #2041
1134 * feat(schema): add support for nested arrays #1361
1135
11364.4.20 / 2016-06-05
1137===================
1138 * docs: clarify command buffering when using driver directly #4195
1139 * fix(promise): correct broken mpromise .catch() #4189
1140 * fix(document): clean modified subpaths when set path to empty obj #4182
1141 * fix(query): support minDistance with query casting and `.near()` #4179
1142 * fix(model): remove unnecessary .save() promise #4177
1143 * fix(schema): cast all valid ObjectId strings to object ids #3365
1144 * docs: remove unclear "unsafe" term in query docs #3282
1145
11464.4.19 / 2016-05-21
1147===================
1148 * fix(model): handle insertMany if timestamps not set #4171
1149
11504.4.18 / 2016-05-21
1151===================
1152 * docs: add missing period #4170 [gitname](https://github.com/gitname)
1153 * docs: change build badge to svg #4158 [a0viedo](https://github.com/a0viedo)
1154 * fix(model): update timestamps when setting `createdAt` #4155
1155 * fix(utils): make sure to require in document properly #4152
1156 * fix(model): throw overwrite error when discriminator name conflicts #4148
1157
11584.4.17 / 2016-05-13
1159===================
1160 * docs: remove repetition in QueryStream docs #4147 [hugoabonizio](https://github.com/hugoabonizio)
1161 * fix(document): dont double-validate doc array elements #4145
1162 * fix(document): call required function with correct scope #4142 [JedWatson](https://github.com/JedWatson)
1163
11644.4.16 / 2016-05-09
1165===================
1166 * refactor(document): use function reference #4133 [dciccale](https://github.com/dciccale)
1167 * docs(querystream): clarify `destroy()` and close event #4126 [AnthonyCC](https://github.com/AnthonyCC)
1168 * test: make before hook fail fast if it can't connect #4121
1169 * docs: add description of CastError constructor params #4120
1170 * fix(schematype): ensure single embedded defaults have $parent #4115
1171 * fix(document): mark nested paths for validation #4111
1172 * fix(schema): make sure element is always a subdoc in doc array validation #3816
1173
11744.4.15 / 2016-05-06
1175===================
1176 * fix(schema): support overwriting array default #4109
1177 * fix(populate): assign values when resolving each populate #4104
1178 * fix(aggregate): dont send async option to server #4101
1179 * fix(model): ensure isNew set to false after insertMany #4099
1180 * fix(connection): emit on error if listeners and no callback #4098
1181 * fix(document): treat required fn that returns false as required: false #4094
1182
11834.4.14 / 2016-04-27
1184===================
1185 * fix: upgrade mongodb -> 2.1.18 #4102
1186 * feat(connection): allow setting mongos as a uri query param #4093 #4035 [burtonjc](https://github.com/burtonjc)
1187 * fix(populate): make sure to use correct assignment order for each model #4073
1188 * fix(schema): add complete set of geospatial operators for single embedded subdocs #4014
1189
11903.8.40 / 2016-04-24
1191===================
1192 * upgraded; mquery -> 1.10.0 #3989
1193
11944.4.13 / 2016-04-21
1195===================
1196 * docs: add docs favicons #4082 [robertjustjones](https://github.com/robertjustjones)
1197 * docs(model): correct Model.remove() return value #4075 [Jokero](https://github.com/Jokero)
1198 * fix(query): add $geoWithin query casting for single embedded docs #4044
1199 * fix(schema): handle setting trim option to falsy #4042
1200 * fix(query): handle setDefaultsOnInsert with empty update #3835
1201
12024.4.12 / 2016-04-08
1203===================
1204 * docs(query): document context option for update and findOneAndUpdate #4055
1205 * docs(query): correct link to $geoWithin docs #4050
1206 * fix(project): upgrade to mongodb driver 2.1.16 #4048 [schmalliso](https://github.com/schmalliso)
1207 * docs(validation): fix validation docs #4028
1208 * fix(types): improve .id() check for document arrays #4011
1209 * fix(query): remove premature return when using $rename #3171
1210 * docs(connection): clarify relationship between models and connections #2157
1211
12124.4.11 / 2016-04-03
1213===================
1214 * fix: upgrade to mongodb driver 2.1.14 #4036 #4030 #3945
1215 * fix(connection): allow connecting with { mongos: true } to handle query params #4032 [burtonjc](https://github.com/burtonjc)
1216 * docs(connection): add autoIndex example #4026 [tilleps](https://github.com/tilleps)
1217 * fix(query): handle passRawResult option when zero results #4023
1218 * fix(populate): clone options before modifying #4022
1219 * docs: add missing whitespace #4019 [chenxsan](https://github.com/chenxsan)
1220 * chore: upgrade to ESLint 2.4.0 #4015 [ChristianMurphy](https://github.com/ChristianMurphy)
1221 * fix(types): single nested subdocs get ids by default #4008
1222 * chore(project): add dependency status badge #4007 [Maheshkumar-Kakade](http://github.com/Maheshkumar-Kakade)
1223 * fix: make sure timestamps don't trigger unnecessary updates #4005 #3991 [tommarien](https://github.com/tommarien)
1224 * fix(document): inspect inherits schema options #4001
1225 * fix(populate): don't mark populated path as modified if setting to object w/ same id #3992
1226 * fix(document): support kind argument to invalidate #3965
1227
12284.4.10 / 2016-03-24
1229===================
1230 * fix(document): copy isNew when copying a document #3982
1231 * fix(document): don't override defaults with undefined keys #3981
1232 * fix(populate): merge multiple deep populate options for the same path #3974
1233
12344.4.9 / 2016-03-22
1235==================
1236 * fix: upgrade mongodb -> 2.1.10 re https://jira.mongodb.org/browse/NODE-679 #4010
1237 * docs: add syntax highlighting for acquit examples #3975
1238
12394.4.8 / 2016-03-18
1240==================
1241 * docs(aggregate): clarify promises #3990 [megagon](https://github.com/megagon)
1242 * fix: upgrade mquery -> 1.10 #3988 [matskiv](https://github.com/matskiv)
1243 * feat(connection): 'all' event for repl sets #3986 [xizhibei](https://github.com/xizhibei)
1244 * docs(types): clarify Array.pull #3985 [seriousManual](https://github.com/seriousManual)
1245 * feat(query): support array syntax for .sort() via mquery 1.9 #3980
1246 * fix(populate): support > 3 level nested populate #3973
1247 * fix: MongooseThenable exposes connection correctly #3972
1248 * docs(connection): add note about reconnectTries and reconnectInterval #3969
1249 * feat(document): invalidate returns the new validationError #3964
1250 * fix(query): .eq() as shorthand for .equals #3953 [Fonger](https://github.com/Fonger)
1251 * docs(connection): clarify connection string vs passed options #3941
1252 * docs(query): select option for findOneAndUpdate #3933
1253 * fix(error): ValidationError.properties no longer enumerable #3925
1254 * docs(validation): clarify how required validators work with nested schemas #3915
1255 * fix: upgrade mongodb driver -> 2.1.8 to make partial index errors more sane #3864
1256
12574.4.7 / 2016-03-11
1258==================
1259 * fix(query): stop infinite recursion caused by merging a mongoose buffer #3961
1260 * fix(populate): handle deep populate array -> array #3954
1261 * fix(schema): allow setting timestamps with .set() #3952 #3951 #3907 [Fonger](https://github.com/Fonger)
1262 * fix: MongooseThenable doesn't overwrite constructors #3940
1263 * fix(schema): don't cast boolean to date #3935
1264 * fix(drivers): support sslValidate in connection string #3929
1265 * fix(types): correct markModified() for single nested subdocs #3910
1266 * fix(drivers): catch and report any errors that occur in driver methods #3906
1267 * fix(populate): get subpopulate model correctly when array under nested #3904
1268 * fix(document): allow fields named 'pre' and 'post' #3902
1269 * docs(query): clarify runValidators and setDefaultsOnInsert options #3892
1270 * docs(validation): show how to use custom required messages in schema #2616
1271
12724.4.6 / 2016-03-02
1273==================
1274 * fix: upgrade mongodb driver to 2.1.7 #3938
1275 * docs: fix plugins link #3917 #3909 [fbertone](https://github.com/fbertone)
1276 * fix(query): sort+select with count works #3914
1277 * fix(query): improve mergeUpdate's ability to handle nested docs #3890
1278
12794.4.5 / 2016-02-24
1280==================
1281 * fix(query): ability to select a length field (upgrade to mquery 1.7.0) #3903
1282 * fix: include nested CastError as reason for array CastError #3897 [kotarou3](https://github.com/kotarou3)
1283 * fix(schema): check for doc existence before taking fields #3889
1284 * feat(schema): useNestedStrict option to take nested strict mode for update #3883
1285 * docs(validation): clarify relationship between required and checkRequired #3822
1286 * docs(populate): dynamic reference docs #3809
1287 * docs: expand dropdown when clicking on file name #3807
1288 * docs: plugins.mongoosejs.io is up #3127
1289 * fix(schema): ability to add a virtual with same name as removed path #2398
1290
12914.4.4 / 2016-02-17
1292==================
1293 * fix(schema): handle field selection when casting single nested subdocs #3880
1294 * fix(populate): populating using base model with multiple child models in result #3878
1295 * fix: ability to properly use return value of `mongoose.connect()` #3874
1296 * fix(populate): dont hydrate populated subdoc if lean option set #3873
1297 * fix(connection): dont re-auth if already connected with useDb #3871
1298 * docs: cover how to set underlying driver's promise lib #3869
1299 * fix(document): handle conflicting names in validation errors with subdocs #3867
1300 * fix(populate): set undefined instead of null consistently when populate couldn't find results #3859
1301 * docs: link to `execPopulate()` in `doc.populate()` docs #3836
1302 * docs(plugin): link to the `mongoose.plugin()` function #3732
1303
13044.4.3 / 2016-02-09
1305==================
1306 * fix: upgrade to mongodb 2.1.6 to remove kerberos log output #3861 #3860 [cartuchogl](https://github.com/cartuchogl)
1307 * fix: require('mongoose') is no longer a pseudo-promise #3856
1308 * fix(query): update casting for single nested docs #3820
1309 * fix(populate): deep populating multiple paths with same options #3808
1310 * docs(middleware): clarify save/validate hook order #1149
1311
13124.4.2 / 2016-02-05
1313==================
1314 * fix(aggregate): handle calling .cursor() with no options #3855
1315 * fix: upgrade mongodb driver to 2.1.5 for GridFS memory leak fix #3854
1316 * docs: fix schematype.html conflict #3853 #3850 #3843
1317 * fix(model): bluebird unhandled rejection with ensureIndexes() on init #3837
1318 * docs: autoIndex option for createConnection #3805
1319
13204.4.1 / 2016-02-03
1321==================
1322 * fix: linting broke some cases where we use `== null` as shorthand #3852
1323 * docs: fix up schematype.html conflict #3848 #3843 [mynameiscoffey](https://github.com/mynameiscoffey)
1324 * fix: backwards breaking change with `.connect()` return value #3847
1325 * docs: downgrade dox and highlight.js to fix docs build #3845
1326 * docs: clean up typo #3842 [Flash-](https://github.com/Flash-)
1327 * fix(document): storeShard handles undefined values #3841
1328 * chore: more linting #3838 [TrejGun](https://github.com/TrejGun)
1329 * fix(schema): handle `text: true` as a way to declare a text index #3824
1330
13314.4.0 / 2016-02-02
1332==================
1333 * docs: fix expireAfterSeconds index option name #3831 [Flash-](https://github.com/Flash-)
1334 * chore: run lint after test #3829 [ChristianMurphy](https://github.com/ChristianMurphy)
1335 * chore: use power-assert instead of assert #3828 [TrejGun](https://github.com/TrejGun)
1336 * chore: stricter lint #3827 [TrejGun](https://github.com/TrejGun)
1337 * feat(types): casting moment to date #3813 [TrejGun](https://github.com/TrejGun)
1338 * chore: comma-last lint for test folder #3810 [ChristianMurphy](https://github.com/ChristianMurphy)
1339 * fix: upgrade async mpath, mpromise, muri, and sliced #3801 [TrejGun](https://github.com/TrejGun)
1340 * fix(query): geo queries now return proper ES2015 promises #3800 [TrejGun](https://github.com/TrejGun)
1341 * perf(types): use `Object.defineProperties()` for array #3799 [TrejGun](https://github.com/TrejGun)
1342 * fix(model): mapReduce, ensureIndexes, remove, and save properly return ES2015 promises #3795 #3628 #3595 [TrejGun](https://github.com/TrejGun)
1343 * docs: fixed dates in History.md #3791 [Jokero](https://github.com/Jokero)
1344 * feat: connect, open, openSet, and disconnect return ES2015 promises #3790 #3622 [TrejGun](https://github.com/TrejGun)
1345 * feat: custom type for int32 via mongoose-int32 npm package #3652 #3102
1346 * feat: basic custom schema type API #995
1347 * feat(model): `insertMany()` for more performant bulk inserts #723
1348
13494.3.7 / 2016-01-23
1350==================
1351 * docs: grammar fix in timestamps docs #3786 [zclancy](https://github.com/zclancy)
1352 * fix(document): setting nested populated docs #3783 [slamuu](https://github.com/slamuu)
1353 * fix(document): don't call post save hooks twice for pushed docs #3780
1354 * fix(model): handle `_id=0` correctly #3776
1355 * docs(middleware): async post hooks #3770
1356 * docs: remove confusing sentence #3765 [marcusmellis89](https://github.com/marcusmellis89)
1357
13583.8.39 / 2016-01-15
1359===================
1360 * fixed; casting a number to a buffer #3764
1361 * fixed; enumerating virtual property with nested objects #3743 [kusold](https://github.com/kusold)
1362
13634.3.6 / 2016-01-15
1364==================
1365 * fix(types): casting a number to a buffer #3764
1366 * fix: add "listener" to reserved keywords #3759
1367 * chore: upgrade uglify #3757 [ChristianMurphy](https://github.com/ChristianMurphy)
1368 * fix: broken execPopulate() in 4.3.5 #3755 #3753
1369 * fix: ability to remove() a single embedded doc #3754
1370 * style: comma-last in test folder #3751 [ChristianMurphy](https://github.com/ChristianMurphy)
1371 * docs: clarify versionKey option #3747
1372 * fix: improve colorization for arrays #3744 [TrejGun](https://github.com/TrejGun)
1373 * fix: webpack build #3713
1374
13754.3.5 / 2016-01-09
1376==================
1377 * fix(query): throw when 4th parameter to update not a function #3741 [kasselTrankos](https://github.com/kasselTrankos)
1378 * fix(document): separate error type for setting an object to a primitive #3735
1379 * fix(populate): Model.populate returns ES6 promise #3734
1380 * fix(drivers): re-register event handlers after manual reconnect #3729
1381 * docs: broken links #3727
1382 * fix(validation): update validators run array validation #3724
1383 * docs: clarify the need to use markModified with in-place date ops #3722
1384 * fix(document): mark correct path as populated when manually populating array #3721
1385 * fix(aggregate): support for array pipeline argument to append #3718 [dbkup](https://github.com/dbkup)
1386 * docs: clarify `.connect()` callback #3705
1387 * fix(schema): properly validate nested single nested docs #3702
1388 * fix(types): handle setting documentarray of wrong type #3701
1389 * docs: broken links #3700
1390 * fix(drivers): debug output properly displays '0' #3689
1391
13923.8.38 / 2016-01-07
1393===================
1394 * fixed; aggregate.append an array #3730 [dbkup](https://github.com/dbkup)
1395
13964.3.4 / 2015-12-23
1397==================
1398 * fix: upgrade mongodb driver to 2.1.2 for repl set error #3712 [sansmischevia](https://github.com/sansmischevia)
1399 * docs: validation docs typo #3709 [ivanmaeder](https://github.com/ivanmaeder)
1400 * style: remove unused variables #3708 [ChristianMurphy](https://github.com/ChristianMurphy)
1401 * fix(schema): duck-typing for schemas #3703 [mgcrea](https://github.com/mgcrea)
1402 * docs: connection sample code issue #3697
1403 * fix(schema): duck-typing for schemas #3693 [mgcrea](https://github.com/mgcrea)
1404 * docs: clarify id schema option #3638
1405
14064.3.3 / 2015-12-18
1407==================
1408 * fix(connection): properly support 'replSet' as well as 'replset' #3688 [taxilian](https://github.com/taxilian)
1409 * fix(document): single nested doc pre hooks called before nested doc array #3687 [aliatsis](https://github.com/aliatsis)
1410
14114.3.2 / 2015-12-17
1412==================
1413 * fix(document): .set() into single nested schemas #3686
1414 * fix(connection): support 'replSet' as well as 'replset' option #3685
1415 * fix(document): bluebird unhandled rejection when validating doc arrays #3681
1416 * fix(document): hooks for doc arrays in single nested schemas #3680
1417 * fix(document): post hooks for single nested schemas #3679
1418 * fix: remove unused npm module #3674 [sybarite](https://github.com/sybarite)
1419 * fix(model): don't swallow exceptions in nested doc save callback #3671
1420 * docs: update keepAlive info #3667 [ChrisZieba](https://github.com/ChrisZieba)
1421 * fix(document): strict 'throw' throws a specific mongoose error #3662
1422 * fix: flakey test #3332
1423 * fix(query): more robust check for RegExp #2969
1424
14254.3.1 / 2015-12-11
1426==================
1427 * feat(aggregate): `.sample()` helper #3665
1428 * fix(query): bitwise query operators with buffers #3663
1429 * docs(migration): clarify `new` option and findByIdAndUpdate #3661
1430
14314.3.0 / 2015-12-09
1432==================
1433 * feat(query): support for mongodb 3.2 bitwise query operators #3660
1434 * style: use comma-last style consistently #3657 [ChristianMurphy](https://github.com/ChristianMurphy)
1435 * feat: upgrade mongodb driver to 2.1.0 for full MongoDB 3.2 support #3656
1436 * feat(aggregate): `.lookup()` helper #3532
1437
14384.2.10 / 2015-12-08
1439===================
1440 * fixed; upgraded marked #3653 [ChristianMurphy](https://github.com/ChristianMurphy)
1441 * docs; cross-db populate #3648
1442 * docs; update mocha URL #3646 [ojhaujjwal](https://github.com/ojhaujjwal)
1443 * fixed; call close callback asynchronously #3645
1444 * docs; virtuals.html issue #3644 [Psarna94](https://github.com/Psarna94)
1445 * fixed; single embedded doc casting on init #3642
1446 * docs; validation docs improvements #3640
1447
14484.2.9 / 2015-12-02
1449==================
1450 * docs; defaults docs #3625
1451 * fix; nested numeric keys causing an embedded document crash #3623
1452 * fix; apply path getters before virtual getters #3618
1453 * fix; casting for arrays in single nested schemas #3616
1454
14554.2.8 / 2015-11-25
1456==================
1457 * docs; clean up README links #3612 [ReadmeCritic](https://github.com/ReadmeCritic)
1458 * fix; ESLint improvements #3605 [ChristianMurphy](https://github.com/ChristianMurphy)
1459 * fix; assigning single nested subdocs #3601
1460 * docs; describe custom logging functions in `mongoose.set()` docs #3557
1461
14624.2.7 / 2015-11-20
1463==================
1464 * fixed; readPreference connection string option #3600
1465 * fixed; pulling from manually populated arrays #3598 #3579
1466 * docs; FAQ about OverwriteModelError #3597 [stcruy](https://github.com/stcruy)
1467 * fixed; setting single embedded schemas to null #3596
1468 * fixed; indexes for single embedded schemas #3594
1469 * docs; clarify projection for `findOne()` #3593 [gunar](https://github.com/gunar)
1470 * fixed; .ownerDocument() method on single embedded schemas #3589
1471 * fixed; properly throw casterror for query on single embedded schema #3580
1472 * upgraded; mongodb driver -> 2.0.49 for reconnect issue fix #3481
1473
14744.2.6 / 2015-11-16
1475==================
1476 * fixed; ability to manually populate an array #3575
1477 * docs; clarify `isAsync` parameter to hooks #3573
1478 * fixed; use captureStackTrace if possible instead #3571
1479 * fixed; crash with buffer and update validators #3565 [johnpeb](https://github.com/johnpeb)
1480 * fixed; update casting with operators overwrite: true #3564
1481 * fixed; validation with single embedded docs #3562
1482 * fixed; inline docs inherit parents $type key #3560
1483 * docs; bad grammar in populate docs #3559 [amaurymedeiros](https://github.com/amaurymedeiros)
1484 * fixed; properly handle populate option for find() #2321
1485
14863.8.37 / 2015-11-16
1487===================
1488 * fixed; use retainKeyOrder for cloning update op #3572
1489
14904.2.5 / 2015-11-09
1491==================
1492 * fixed; handle setting fields in pre update hooks with exec #3549
1493 * upgraded; ESLint #3547 [ChristianMurphy](https://github.com/ChristianMurphy)
1494 * fixed; bluebird unhandled rejections with cast errors and .exec #3543
1495 * fixed; min/max validators handling undefined #3539
1496 * fixed; standalone mongos connections #3537
1497 * fixed; call `.toObject()` when setting a single nested doc #3535
1498 * fixed; single nested docs now have methods #3534
1499 * fixed; single nested docs with .create() #3533 #3521 [tusbar](https://github.com/tusbar)
1500 * docs; deep populate docs #3528
1501 * fixed; deep populate schema ref handling #3507
1502 * upgraded; mongodb driver -> 2.0.48 for sort overflow issue #3493
1503 * docs; clarify default ids for discriminators #3482
1504 * fixed; properly support .update(doc) #3221
1505
15064.2.4 / 2015-11-02
1507==================
1508 * fixed; upgraded `ms` package for security vulnerability #3524 [fhemberger](https://github.com/fhemberger)
1509 * fixed; ESlint rules #3517 [ChristianMurphy](https://github.com/ChristianMurphy)
1510 * docs; typo in aggregation docs #3513 [rafakato](https://github.com/rafakato)
1511 * fixed; add `dontThrowCastError` option to .update() for promises #3512
1512 * fixed; don't double-cast buffers in node 4.x #3510 #3496
1513 * fixed; population with single embedded schemas #3501
1514 * fixed; pre('set') hooks work properly #3479
1515 * docs; promises guide #3441
1516
15174.2.3 / 2015-10-26
1518==================
1519 * docs; remove unreferenced function in middleware.jade #3506
1520 * fixed; handling auth with no username/password #3500 #3498 #3484 [mleanos](https://github.com/mleanos)
1521 * fixed; more ESlint rules #3491 [ChristianMurphy](https://github.com/ChristianMurphy)
1522 * fixed; swallowing exceptions in save callback #3478
1523 * docs; fixed broken links in subdocs guide #3477
1524 * fixed; casting booleans to numbers #3475
1525 * fixed; report CastError for subdoc arrays in findOneAndUpdate #3468
1526 * fixed; geoNear returns ES6 promise #3458
1527
15284.2.2 / 2015-10-22
1529==================
1530 * fixed; go back to old pluralization code #3490
1531
15324.2.1 / 2015-10-22
1533==================
1534 * fixed; pluralization issues #3492 [ChristianMurphy](https://github.com/ChristianMurphy)
1535
15364.2.0 / 2015-10-22
1537==================
1538 * added; support for skipVersioning for document arrays #3467 [chazmo03](https://github.com/chazmo03)
1539 * added; ability to customize schema 'type' key #3459 #3245
1540 * fixed; writeConcern for index builds #3455
1541 * added; emit event when individual index build starts #3440 [objectiveSee](https://github.com/objectiveSee)
1542 * added; 'context' option for update validators #3430
1543 * refactor; pluralization now in separate pluralize-mongoose npm module #3415 [ChristianMurphy](https://github.com/ChristianMurphy)
1544 * added; customizable error validation messages #3406 [geronime](https://github.com/geronime)
1545 * added; support for passing 'minimize' option to update #3381
1546 * added; ability to customize debug logging format #3261
1547 * added; baseModelName property for discriminator models #3202
1548 * added; 'emitIndexErrors' option #3174
1549 * added; 'async' option for aggregation cursor to support buffering #3160
1550 * added; ability to skip validation for individual save() calls #2981
1551 * added; single embedded schema support #2689 #585
1552 * added; depopulate function #2509
1553
15544.1.12 / 2015-10-19
1555===================
1556 * docs; use readPreference instead of slaveOk for Query.setOptions docs #3471 [buunguyen](https://github.com/buunguyen)
1557 * fixed; more helpful error when regexp contains null bytes #3456
1558 * fixed; x509 auth issue #3454 [NoxHarmonium](https://github.com/NoxHarmonium)
1559
15603.8.36 / 2015-10-18
1561===================
1562 * fixed; Make array props non-enumerable #3461 [boblauer](https://github.com/boblauer)
1563
15644.1.11 / 2015-10-12
1565===================
1566 * fixed; update timestamps for update() if they're enabled #3450 [isayme](https://github.com/isayme)
1567 * fixed; unit test error on node 0.10 #3449 [isayme](https://github.com/isayme)
1568 * docs; timestamp option docs #3448 [isayme](https://github.com/isayme)
1569 * docs; fix unexpected indent #3443 [isayme](https://github.com/isayme)
1570 * fixed; use ES6 promises for Model.prototype.remove() #3442
1571 * fixed; don't use unused 'safe' option for index builds #3439
1572 * fixed; elemMatch casting bug #3437 #3435 [DefinitelyCarter](https://github.com/DefinitelyCarter)
1573 * docs; schema.index docs #3434
1574 * fixed; exceptions in save() callback getting swallowed on mongodb 2.4 #3371
1575
15764.1.10 / 2015-10-05
1577===================
1578 * docs; improve virtuals docs to explain virtuals schema option #3433 [zoyaH](https://github.com/zoyaH)
1579 * docs; MongoDB server version compatibility guide #3427
1580 * docs; clarify that findById and findByIdAndUpdate fire hooks #3422
1581 * docs; clean up Model.save() docs #3420
1582 * fixed; properly handle projection with just id #3407 #3412
1583 * fixed; infinite loop when database document is corrupted #3405
1584 * docs; clarify remove middleware #3388
1585
15864.1.9 / 2015-09-28
1587==================
1588 * docs; minlength and maxlength string validation docs #3368 #3413 [cosmosgenius](https://github.com/cosmosgenius)
1589 * fixed; linting for infix operators #3397 [ChristianMurphy](https://github.com/ChristianMurphy)
1590 * fixed; proper casting for $all #3394
1591 * fixed; unhandled rejection warnings with .create() #3391
1592 * docs; clarify update validators on paths that aren't explicitly set #3386
1593 * docs; custom validator examples #2778
1594
15954.1.8 / 2015-09-21
1596==================
1597 * docs; fixed typo in example #3390 [kmctown](https://github.com/kmctown)
1598 * fixed; error in toObject() #3387 [guumaster](https://github.com/guumaster)
1599 * fixed; handling for casting null dates #3383 [alexmingoia](https://github.com/alexmingoia)
1600 * fixed; passing composite ids to `findByIdAndUpdate` #3380
1601 * fixed; linting #3376 #3375 [ChristianMurphy](https://github.com/ChristianMurphy)
1602 * fixed; added NodeJS v4 to Travis #3374 [ChristianMurphy](https://github.com/ChristianMurphy)
1603 * fixed; casting $elemMatch inside of $not #3373 [gaguirre](https://github.com/gaguirre)
1604 * fixed; handle case where $slice is 0 #3369
1605 * fixed; avoid running getters if path is populated #3357
1606 * fixed; cast documents to objects when setting to a nested path #3346
1607
16084.1.7 / 2015-09-14
1609==================
1610 * docs; typos in SchemaType documentation #3367 [jasson15](https://github.com/jasson15)
1611 * fixed; MONGOOSE_DRIVER_PATH env variable again #3360
1612 * docs; added validateSync docs #3353
1613 * fixed; set findOne op synchronously in query #3344
1614 * fixed; handling for `.pull()` on a documentarray without an id #3341
1615 * fixed; use natural order for cloning update conditions #3338
1616 * fixed; issue with strict mode casting for mixed type updates #3337
1617
16184.1.6 / 2015-09-08
1619==================
1620 * fixed; MONGOOSE_DRIVER_PATH env variable #3345 [g13013](https://github.com/g13013)
1621 * docs; global autoIndex option #3335 [albertorestifo](https://github.com/albertorestifo)
1622 * docs; model documentation typos #3330
1623 * fixed; report reason for CastError #3320
1624 * fixed; .populate() no longer returns true after re-assigning #3308
1625 * fixed; discriminators with aggregation geoNear #3304
1626 * docs; discriminator docs #2743
1627
16284.1.5 / 2015-09-01
1629==================
1630 * fixed; document.remove() removing all docs #3326 #3325
1631 * fixed; connect() checks for rs_name in options #3299
1632 * docs; examples for schema.set() #3288
1633 * fixed; checkKeys issue with bluebird #3286 [gregthegeek](https://github.com/gregthegeek)
1634
16354.1.4 / 2015-08-31
1636==================
1637 * fixed; ability to set strict: false for update #3305
1638 * fixed; .create() properly uses ES6 promises #3297
1639 * fixed; pre hooks on nested subdocs #3291 #3284 [aliatsis](https://github.com/aliatsis)
1640 * docs; remove unclear text in .remove() docs #3282
1641 * fixed; pre hooks called twice for 3rd-level nested doc #3281
1642 * fixed; nested transforms #3279
1643 * upgraded; mquery -> 1.6.3 #3278 #3272
1644 * fixed; don't swallow callback errors by default #3273 #3222
1645 * fixed; properly get nested paths from nested schemas #3265
1646 * fixed; remove() with id undefined deleting all docs #3260 [thanpolas](https://github.com/thanpolas)
1647 * fixed; handling for non-numeric projections #3256
1648 * fixed; findById with id undefined returning first doc #3255
1649 * fixed; use retainKeyOrder for update #3215
1650 * added; passRawResult option to findOneAndUpdate for backwards compat #3173
1651
16524.1.3 / 2015-08-16
1653==================
1654 * fixed; getUpdate() in pre update hooks #3520 [gregthegeek](https://github.com/gregthegeek)
1655 * fixed; handleArray() ensures arg is an array #3238 [jloveridge](https://github.com/jloveridge)
1656 * fixed; refresh required path cache when recreating docs #3199
1657 * fixed; $ operator on unwind aggregation helper #3197
1658 * fixed; findOneAndUpdate() properly returns raw result as third arg to callback #3173
1659 * fixed; querystream with dynamic refs #3108
1660
16613.8.35 / 2015-08-14
1662===================
1663 * fixed; handling for minimize on nested objects #2930
1664 * fixed; don't crash when schema.path.options undefined #1824
1665
16664.1.2 / 2015-08-10
1667==================
1668 * fixed; better handling for Jade templates #3241 [kbadk](https://github.com/kbadk)
1669 * added; ESlint trailing spaces #3234 [ChristianMurphy](https://github.com/ChristianMurphy)
1670 * added; ESlint #3191 [ChristianMurphy](https://github.com/ChristianMurphy)
1671 * fixed; properly emit event on disconnect #3183
1672 * fixed; copy options properly using Query.toConstructor() #3176
1673 * fixed; setMaxListeners() issue in browser build #3170
1674 * fixed; node driver -> 2.0.40 to not store undefined keys as null #3169
1675 * fixed; update validators handle positional operator #3167
1676 * fixed; handle $all + $elemMatch query casting #3163
1677 * fixed; post save hooks don't swallow extra args #3155
1678 * docs; spelling mistake in index.jade #3154
1679 * fixed; don't crash when toObject() has no fields #3130
1680 * fixed; apply toObject() recursively for find and update queries #3086 [naoina](https://github.com/naoina)
1681
16824.1.1 / 2015-08-03
1683==================
1684 * fixed; aggregate exec() crash with no callback #3212 #3198 [jpgarcia](https://github.com/jpgarcia)
1685 * fixed; pre init hooks now properly synchronous #3207 [burtonjc](https://github.com/burtonjc)
1686 * fixed; updateValidators doesn't flatten dates #3206 #3194 [victorkohl](https://github.com/victorkohl)
1687 * fixed; default fields don't make document dirty between saves #3205 [burtonjc](https://github.com/burtonjc)
1688 * fixed; save passes 0 as numAffected rather than undefined when no change #3195 [burtonjc](https://github.com/burtonjc)
1689 * fixed; better handling for positional operator in update #3185
1690 * fixed; use Travis containers #3181 [ChristianMurphy](https://github.com/ChristianMurphy)
1691 * fixed; leaked variable #3180 [ChristianMurphy](https://github.com/ChristianMurphy)
1692
16934.1.0 / 2015-07-24
1694==================
1695 * added; `schema.queue()` now public #3193
1696 * added; raw result as third parameter to findOneAndX callback #3173
1697 * added; ability to run validateSync() on only certain fields #3153
1698 * added; subPopulate #3103 [timbur](https://github.com/timbur)
1699 * added; $isDefault function on documents #3077
1700 * added; additional properties for built-in validator messages #3063 [KLicheR](https://github.com/KLicheR)
1701 * added; getQuery() and getUpdate() functions for Query #3013
1702 * added; export DocumentProvider #2996
1703 * added; ability to remove path from schema #2993 [JohnnyEstilles](https://github.com/JohnnyEstilles)
1704 * added; .explain() helper for aggregate #2714
1705 * added; ability to specify which ES6-compatible promises library mongoose uses #2688
1706 * added; export Aggregate #1910
1707
17084.0.8 / 2015-07-20
1709==================
1710 * fixed; assignment with document arrays #3178 [rosston](https://github.com/rosston)
1711 * docs; remove duplicate paragraph #3164 [rhmeeuwisse](https://github.com/rhmeeuwisse)
1712 * docs; improve findOneAndXYZ parameter descriptions #3159 [rhmeeuwisse](https://github.com/rhmeeuwisse)
1713 * docs; add findOneAndRemove to list of supported middleware #3158
1714 * docs; clarify ensureIndex #3156
1715 * fixed; refuse to save/remove document without id #3118
1716 * fixed; hooks next() no longer accidentally returns promise #3104
1717 * fixed; strict mode for findOneAndUpdate #2947
1718 * added; .min.js.gz file for browser component #2806
1719
17203.8.34 / 2015-07-20
1721===================
1722 * fixed; allow using $rename #3171
1723 * fixed; no longer modifies update arguments #3008
1724
17254.0.7 / 2015-07-11
1726==================
1727 * fixed; documentarray id method when using object id #3157 [siboulet](https://github.com/siboulet)
1728 * docs; improve findById docs #3147
1729 * fixed; update validators handle null properly #3136 [odeke-em](https://github.com/odeke-em)
1730 * docs; jsdoc syntax errors #3128 [rhmeeuwisse](https://github.com/rhmeeuwisse)
1731 * docs; fix typo #3126 [rhmeeuwisse](https://github.com/rhmeeuwisse)
1732 * docs; proper formatting in queries.jade #3121 [rhmeeuwisse](https://github.com/rhmeeuwisse)
1733 * docs; correct example for string maxlength validator #3111 [rhmeeuwisse](https://github.com/rhmeeuwisse)
1734 * fixed; setDefaultsOnInsert with arrays #3107
1735 * docs; LearnBoost -> Automattic in package.json #3099
1736 * docs; pre update hook example #3094 [danpe](https://github.com/danpe)
1737 * docs; clarify query middleware example #3051
1738 * fixed; ValidationErrors in strict mode #3046
1739 * fixed; set findOneAndUpdate properties before hooks run #3024
1740
17413.8.33 / 2015-07-10
1742===================
1743 * upgraded; node driver -> 1.4.38
1744 * fixed; dont crash when `match` validator undefined
1745
17464.0.6 / 2015-06-21
1747==================
1748 * upgraded; node driver -> 2.0.34 #3087
1749 * fixed; apply setters on addToSet, etc #3067 [victorkohl](https://github.com/victorkohl)
1750 * fixed; missing semicolons #3065 [sokolikp](https://github.com/sokolikp)
1751 * fixed; proper handling for async doc hooks #3062 [gregthegeek](https://github.com/gregthegeek)
1752 * fixed; dont set failed populate field to null if other docs are successfully populated #3055 [eloytoro](https://github.com/eloytoro)
1753 * fixed; setDefaultsOnInsert with document arrays #3034 [taxilian](https://github.com/taxilian)
1754 * fixed; setters fired on array items #3032
1755 * fixed; stop validateSync() on first error #3025 [victorkohl](https://github.com/victorkohl)
1756 * docs; improve query docs #3016
1757 * fixed; always exclude _id when its deselected #3010
1758 * fixed; enum validator kind property #3009
1759 * fixed; mquery collection names #3005
1760 * docs; clarify mongos option #3000
1761 * docs; clarify that query builder has a .then() #2995
1762 * fixed; race condition in dynamic ref #2992
1763
17643.8.31 / 2015-06-20
1765===================
1766 * fixed; properly handle text search with discriminators and $meta #2166
1767
17684.0.5 / 2015-06-05
1769==================
1770 * fixed; ObjectIds and buffers when mongodb driver is a sibling dependency #3050 #3048 #3040 #3031 #3020 #2988 #2951
1771 * fixed; warn user when 'increment' is used in schema #3039
1772 * fixed; setDefaultsOnInsert with array in schema #3035
1773 * fixed; dont use default Object toString to cast to string #3030
1774 * added; npm badge #3020 [odeke-em](https://github.com/odeke-em)
1775 * fixed; proper handling for calling .set() with a subdoc #2782
1776 * fixed; dont throw cast error when using $rename on non-string path #1845
1777
17783.8.30 / 2015-06-05
1779===================
1780 * fixed; enable users to set all options with tailable() #2883
1781
17824.0.4 / 2015-05-28
1783==================
1784 * docs; findAndModify new parameter correct default value #3012 [JonForest](https://github.com/JonForest)
1785 * docs; clarify pluralization rules #2999 [anonmily](https://github.com/anonmily)
1786 * fix; discriminators with schema methods #2978
1787 * fix; make `isModified` a schema reserved keyword #2975
1788 * fix; properly fire setters when initializing path with object #2943
1789 * fix; can use `setDefaultsOnInsert` without specifying `runValidators` #2938
1790 * fix; always set validation errors `kind` property #2885
1791 * upgraded; node driver -> 2.0.33 #2865
1792
17933.8.29 / 2015-05-27
1794===================
1795 * fixed; Handle JSON.stringify properly for nested docs #2990
1796
17974.0.3 / 2015-05-13
1798==================
1799 * upgraded; mquery -> 1.5.1 #2983
1800 * docs; clarify context for query middleware #2974
1801 * docs; fix missing type -> kind rename in History.md #2961
1802 * fixed; broken ReadPreference include on Heroku #2957
1803 * docs; correct form for cursor aggregate option #2955
1804 * fixed; sync post hooks now properly called after function #2949 #2925
1805 * fixed; fix sub-doc validate() function #2929
1806 * upgraded; node driver -> 2.0.30 #2926
1807 * docs; retainKeyOrder for save() #2924
1808 * docs; fix broken class names #2913
1809 * fixed; error when using node-clone on a doc #2909
1810 * fixed; no more hard references to bson #2908 #2906
1811 * fixed; dont overwrite array values #2907 [naoina](https://github.com/naoina)
1812 * fixed; use readPreference=primary for findOneAndUpdate #2899 #2823
1813 * docs; clarify that update validators only run on $set and $unset #2889
1814 * fixed; set kind consistently for built-in validators #2885
1815 * docs; single field populated documents #2884
1816 * fixed; nested objects are now enumerable #2880 [toblerpwn](https://github.com/toblerpwn)
1817 * fixed; properly populate field when ref, lean, stream used together #2841
1818 * docs; fixed migration guide jade error #2807
1819
18203.8.28 / 2015-05-12
1821===================
1822 * fixed; proper handling for toJSON options #2910
1823 * fixed; dont attach virtuals to embedded docs in update() #2046
1824
18254.0.2 / 2015-04-23
1826==================
1827 * fixed; error thrown when calling .validate() on subdoc not in an array #2902
1828 * fixed; rename define() to play nice with webpack #2900 [jspears](https://github.com/jspears)
1829 * fixed; pre validate called twice with discriminators #2892
1830 * fixed; .inspect() on mongoose.Types #2875
1831 * docs; correct callback params for Model.update #2872
1832 * fixed; setDefaultsOnInsert now works when runValidators not specified #2870
1833 * fixed; Document now wraps EventEmitter.addListener #2867
1834 * fixed; call non-hook functions in schema queue #2856
1835 * fixed; statics can be mocked out for tests #2848 [ninelb](https://github.com/ninelb)
1836 * upgraded; mquery 1.4.0 for bluebird bug fix #2846
1837 * fixed; required validators run first #2843
1838 * docs; improved docs for new option to findAndMody #2838
1839 * docs; populate example now uses correct field #2837 [swilliams](https://github.com/swilliams)
1840 * fixed; pre validate changes causing VersionError #2835
1841 * fixed; get path from correct place when setting CastError #2832
1842 * docs; improve docs for Model.update() function signature #2827 [irnc](https://github.com/irnc)
1843 * fixed; populating discriminators #2825 [chetverikov](https://github.com/chetverikov)
1844 * fixed; discriminators with nested schemas #2821
1845 * fixed; CastErrors with embedded docs #2819
1846 * fixed; post save hook context #2816
1847 * docs; 3.8.x -> 4.x migration guide #2807
1848 * fixed; proper _distinct copying for query #2765 [cdelauder](https://github.com/cdelauder)
1849
18503.8.27 / 2015-04-22
1851===================
1852 * fixed; dont duplicate db calls on Q.ninvoke() #2864
1853 * fixed; Model.find arguments naming in docs #2828
1854 * fixed; Support ipv6 in connection strings #2298
1855
18563.8.26 / 2015-04-07
1857===================
1858 * fixed; TypeError when setting date to undefined #2833
1859 * fixed; handle CastError properly in distinct() with no callback #2786
1860 * fixed; broken links in queries docs #2779
1861 * fixed; dont mark buffer as modified when setting type initially #2738
1862 * fixed; dont crash when using slice with populate #1934
1863
18644.0.1 / 2015-03-28
1865==================
1866 * fixed; properly handle empty cast doc in update() with promises #2796
1867 * fixed; unstable warning #2794
1868 * fixed; findAndModify docs now show new option is false by default #2793
1869
18704.0.0 / 2015-03-25
1871==================
1872 * fixed; on-the-fly schema docs typo #2783 [artiifix](https://github.com/artiifix)
1873 * fixed; cast error validation handling #2775 #2766 #2678
1874 * fixed; discriminators with populate() #2773 #2719 [chetverikov](https://github.com/chetverikov)
1875 * fixed; increment now a reserved path #2709
1876 * fixed; avoid sending duplicate object ids in populate() #2683
1877 * upgraded; mongodb to 2.0.24 to properly emit reconnect event multiple times #2656
1878
18794.0.0-rc4 / 2015-03-14
1880======================
1881 * fixed; toObject virtuals schema option handled properly #2751
1882 * fixed; update validators work on document arrays #2733
1883 * fixed; check for cast errors on $set #2729
1884 * fixed; instance field set for all schema types #2727 [csdco](https://github.com/csdco)
1885 * fixed; dont run other validators if required fails #2725
1886 * fixed; custom getters execute on ref paths #2610
1887 * fixed; save defaults if they were set when doc was loaded from db #2558
1888 * fixed; pre validate now runs before pre save #2462
1889 * fixed; no longer throws errors with --use_strict #2281
1890
18913.8.25 / 2015-03-13
1892===================
1893 * fixed; debug output reverses order of aggregation keys #2759
1894 * fixed; $eq is a valid query selector in 3.0 #2752
1895 * fixed; upgraded node driver to 1.4.32 for handling non-numeric poolSize #2682
1896 * fixed; update() with overwrite sets _id for nested docs #2658
1897 * fixed; casting for operators in $elemMatch #2199
1898
18994.0.0-rc3 / 2015-02-28
1900======================
1901 * fixed; update() pre hooks run before validators #2706
1902 * fixed; setters not called on arrays of refs #2698 [brandom](https://github.com/brandom)
1903 * fixed; use node driver 2.0.18 for nodejs 0.12 support #2685
1904 * fixed; comments reference file that no longer exists #2681
1905 * fixed; populated() returns _id of manually populated doc #2678
1906 * added; ability to exclude version key in toObject() #2675
1907 * fixed; dont allow setting nested path to a string #2592
1908 * fixed; can cast objects with _id field to ObjectIds #2581
1909 * fixed; on-the-fly schema getters #2360
1910 * added; strict option for findOneAndUpdate() #1967
1911
19123.8.24 / 2015-02-25
1913===================
1914 * fixed; properly apply child schema transforms #2691
1915 * fixed; make copy of findOneAndUpdate options before modifying #2687
1916 * fixed; apply defaults when parent path is selected #2670 #2629
1917 * fixed; properly get ref property for nested paths #2665
1918 * fixed; node driver makes copy of authenticate options before modifying them #2619
1919 * fixed; dont block process exit when auth fails #2599
1920 * fixed; remove redundant clone in update() #2537
1921
19224.0.0-rc2 / 2015-02-10
1923======================
1924 * added; io.js to travis build
1925 * removed; browser build dependencies not installed by default
1926 * added; dynamic refpaths #2640 [chetverikov](https://github.com/chetverikov)
1927 * fixed; dont call child schema transforms on parent #2639 [chetverikov](https://github.com/chetverikov)
1928 * fixed; get rid of remove option if new is set in findAndModify #2598
1929 * fixed; aggregate all document array validation errors #2589
1930 * fixed; custom setters called when setting value to undefined #1892
1931
19323.8.23 / 2015-02-06
1933===================
1934 * fixed; unset opts.remove when upsert is true #2519
1935 * fixed; array saved as object when path is object in array #2442
1936 * fixed; inline transforms #2440
1937 * fixed; check for callback in count() #2204
1938 * fixed; documentation for selecting fields #1534
1939
19404.0.0-rc1 / 2015-02-01
1941======================
1942 * fixed; use driver 2.0.14
1943 * changed; use transform: true by default #2245
1944
19454.0.0-rc0 / 2015-01-31
1946===================
1947 * fixed; wrong order for distinct() params #2628
1948 * fixed; handling no query argument to remove() #2627
1949 * fixed; createModel and discriminators #2623 [ashaffer](https://github.com/ashaffer)
1950 * added; pre('count') middleware #2621
1951 * fixed; double validation calls on document arrays #2618
1952 * added; validate() catches cast errors #2611
1953 * fixed; respect replicaSet parameter in connection string #2609
1954 * added; can explicitly exclude paths from versioning #2576 [csabapalfi](https://github.com/csabapalfi)
1955 * upgraded; driver to 2.0.15 #2552
1956 * fixed; save() handles errors more gracefully in ES6 #2371
1957 * fixed; undefined is now a valid argument to findOneAndUpdate #2272
1958 * changed; `new` option to findAndModify ops is false by default #2262
1959
19603.8.22 / 2015-01-24
1961===================
1962 * upgraded; node-mongodb-native to 1.4.28 #2587 [Climax777](https://github.com/Climax777)
1963 * added; additional documentation for validators #2449
1964 * fixed; stack overflow when creating massive arrays #2423
1965 * fixed; undefined is a valid id for queries #2411
1966 * fixed; properly create nested schema index when same schema used twice #2322
1967 * added; link to plugin generator in docs #2085 [huei90](https://github.com/huei90)
1968 * fixed; optional arguments documentation for findOne() #1971 [nachinius](https://github.com/nachinius)
1969
19703.9.7 / 2014-12-19
1971===================
1972 * added; proper cursors for aggregate #2539 [changyy](https://github.com/changyy)
1973 * added; min/max built-in validators for dates #2531 [bshamblen](https://github.com/bshamblen)
1974 * fixed; save and validate are now reserved keywords #2380
1975 * added; basic documentation for browser component #2256
1976 * added; find and findOne hooks (query middleware) #2138
1977 * fixed; throw a DivergentArrayError when saving positional operator queries #2031
1978 * added; ability to use options as a document property #1416
1979 * fixed; document no longer inherits from event emitter and so domain and _events are no longer reserved #1351
1980 * removed; setProfiling #1349
1981
19823.8.21 / 2014-12-18
1983===================
1984 * fixed; syntax in index.jade #2517 [elderbas](https://github.com/elderbas)
1985 * fixed; writable statics #2510 #2528
1986 * fixed; overwrite and explicit $set casting #2515
1987
19883.9.6 / 2014-12-05
1989===================
1990 * added; correctly run validators on each element of array when entire array is modified #661 #1227
1991 * added; castErrors in validation #1013 [jondavidjohn](https://github.com/jondavidjohn)
1992 * added; specify text indexes in schema fields #1401 [sr527](https://github.com/sr527)
1993 * added; ability to set field with validators to undefined #1594 [alabid](https://github.com/alabid)
1994 * added; .create() returns an array when passed an array #1746 [alabid](https://github.com/alabid)
1995 * added; test suite and docs for use with co and yield #2177 #2474
1996 * fixed; subdocument toObject() transforms #2447 [chmanie](https://github.com/chmanie)
1997 * fixed; Model.create() with save errors #2484
1998 * added; pass options to .save() and .remove() #2494 [jondavidjohn](https://github.com/jondavidjohn)
1999
20003.8.20 / 2014-12-01
2001===================
2002 * fixed; recursive readPref #2490 [kjvalencik](https://github.com/kjvalencik)
2003 * fixed; make sure to copy parameters to update() before modifying #2406 [alabid](https://github.com/alabid)
2004 * fixed; unclear documentation about query callbacks #2319
2005 * fixed; setting a schema-less field to an empty object #2314 [alabid](https://github.com/alabid)
2006 * fixed; registering statics and methods for discriminators #2167 [alabid](https://github.com/alabid)
2007
20083.9.5 / 2014-11-10
2009===================
2010 * added; ability to disable autoIndex on a per-connection basis #1875 [sr527](https://github.com/sr527)
2011 * fixed; `geoNear()` no longer enforces legacy coordinate pairs - supports GeoJSON #1987 [alabid](https://github.com/alabid)
2012 * fixed; browser component works when minified with mangled variable names #2302
2013 * fixed; `doc.errors` now cleared before `validate()` called #2302
2014 * added; `execPopulate()` function to make `doc.populate()` compatible with promises #2317
2015 * fixed; `count()` no longer throws an error when used with `sort()` #2374
2016 * fixed; `save()` no longer recursively calls `save()` on populated fields #2418
2017
20183.8.19 / 2014-11-09
2019===================
2020 * fixed; make sure to not override subdoc _ids on find #2276 [alabid](https://github.com/alabid)
2021 * fixed; exception when comparing two documents when one lacks _id #2333 [slawo](https://github.com/slawo)
2022 * fixed; getters for properties with non-strict schemas #2439 [alabid](https://github.com/alabid)
2023 * fixed; inconsistent URI format in docs #2414 [sr527](https://github.com/sr527)
2024
20253.9.4 / 2014-10-25
2026==================
2027 * fixed; statics no longer can be overwritten #2343 [nkcmr](https://github.com/chetverikov)
2028 * added; ability to set single populated paths to documents #1530
2029 * added; setDefaultsOnInsert and runValidator options for findOneAndUpdate() #860
2030
20313.8.18 / 2014-10-22
2032==================
2033 * fixed; Dont use all toObject options in save #2340 [chetverikov](https://github.com/chetverikov)
2034
20353.9.3 / 2014-10-01
2036=================
2037 * added; support for virtuals that return objects #2294
2038 * added; ability to manually hydrate POJOs into mongoose objects #2292
2039 * added; setDefaultsOnInsert and runValidator options for update() #860
2040
20413.8.17 / 2014-09-29
2042==================
2043 * fixed; use schema options retainKeyOrder in save() #2274
2044 * fixed; fix skip in populate when limit is set #2252
2045 * fixed; fix stack overflow when passing MongooseArray to findAndModify #2214
2046 * fixed; optimize .length usage in populate #2289
2047
20483.9.2 / 2014-09-08
2049==================
2050 * added; test coverage for browser component #2255
2051 * added; in-order execution of validators #2243
2052 * added; custom fields for validators #2132
2053 * removed; exception thrown when find() used with count() #1950
2054
20553.8.16 / 2014-09-08
2056==================
2057 * fixed; properly remove modified array paths if array has been overwritten #1638
2058 * fixed; key check errors #1884
2059 * fixed; make sure populate on an array always returns a Mongoose array #2214
2060 * fixed; SSL connections with node 0.11 #2234
2061 * fixed; return sensible strings for promise errors #2239
2062
20633.9.1 / 2014-08-17
2064==================
2065 * added; alpha version of browser-side schema validation #2254
2066 * added; support passing a function to schemas `required` field #2247
2067 * added; support for setting updatedAt and createdAt timestamps #2227
2068 * added; document.validate() returns a promise #2131
2069
20703.8.15 / 2014-08-17
2071==================
2072 * fixed; Replica set connection string example in docs #2246
2073 * fixed; bubble up parseError event #2229
2074 * fixed; removed buggy populate cache #2176
2075 * fixed; dont $inc versionKey if its being $set #1933
2076 * fixed; cast $or and $and in $pull #1932
2077 * fixed; properly cast to schema in stream() #1862
2078 * fixed; memory leak in nested objects #1565 #2211 [devongovett](https://github.com/devongovett)
2079
20803.8.14 / 2014-07-26
2081==================
2082 * fixed; stringifying MongooseArray shows nested arrays #2002
2083 * fixed; use populated doc schema in toObject and toJSON by default #2035
2084 * fixed; dont crash on arrays containing null #2140
2085 * fixed; model.update w/ upsert has same return values on .exec and promise #2143
2086 * fixed; better handling for populate limit with multiple documents #2151
2087 * fixed; dont prevent users from adding weights to text index #2183
2088 * fixed; helper for aggregation cursor #2187
2089 * updated; node-mongodb-native to 1.4.7
2090
20913.8.13 / 2014-07-15
2092==================
2093 * fixed; memory leak with isNew events #2159
2094 * fixed; docs for overwrite option for update() #2144
2095 * fixed; storeShard() handles dates properly #2127
2096 * fixed; sub-doc changes not getting persisted to db after save #2082
2097 * fixed; populate with _id: 0 actually removes _id instead of setting to undefined #2123
2098 * fixed; save versionKey on findOneAndUpdate w/ upsert #2122
2099 * fixed; fix typo in 2.8 docs #2120 [shakirullahi](https://github.com/shakirullahi)
2100 * fixed; support maxTimeMs #2102 [yuukinajima](https://github.com/yuukinajima)
2101 * fixed; support $currentDate #2019
2102 * fixed; $addToSet handles objects without _ids properly #1973
2103 * fixed; dont crash on invalid nearSphere query #1874
2104
21053.8.12 / 2014-05-30
2106==================
2107 * fixed; single-server reconnect event fires #1672
2108 * fixed; sub-docs not saved when pushed into populated array #1794
2109 * fixed; .set() sometimes converts embedded docs to pojos #1954 [archangel-irk](https://github.com/archangel-irk)
2110 * fixed; sub-doc changes not getting persisted to db after save #2082
2111 * fixed; custom getter might cause mongoose to mistakenly think a path is dirty #2100 [pgherveou](https://github.com/pgherveou)
2112 * fixed; chainable helper for allowDiskUse option in aggregation #2114
2113
21143.9.0 (unstable) / 2014-05-22
2115==================
2116 * changed; added `domain` to reserved keywords #1338 #2052 [antoinepairet](https://github.com/antoinepairet)
2117 * added; asynchronous post hooks #1977 #2081 [chopachom](https://github.com/chopachom) [JasonGhent](https://github.com/JasonGhent)
2118 * added; using model for population, cross-db populate [mihai-chiorean](https://github.com/mihai-chiorean)
2119 * added; can define a type for schema validators
2120 * added; `doc.remove()` returns a promise #1619 [refack](https://github.com/refack)
2121 * added; internal promises for hooks, pre-save hooks run in parallel #1732 [refack](https://github.com/refack)
2122 * fixed; geoSearch hanging when no results returned #1846 [ghartnett](https://github.com/ghartnett)
2123 * fixed; do not set .type property on ValidationError, use .kind instead #1323
2124
21253.8.11 / 2014-05-22
2126==================
2127 * updated; node-mongodb-native to 1.4.5
2128 * reverted; #2052, fixes #2097
2129
21303.8.10 / 2014-05-20
2131==================
2132
2133 * updated; node-mongodb-native to 1.4.4
2134 * fixed; _.isEqual false negatives bug in js-bson #2070
2135 * fixed; missing check for schema.options #2014
2136 * fixed; missing support for $position #2024
2137 * fixed; options object corruption #2049
2138 * fixed; improvements to virtuals docs #2055
2139 * fixed; added `domain` to reserved keywords #2052 #1338
2140
21413.8.9 / 2014-05-08
2142==================
2143
2144 * updated; mquery to 0.7.0
2145 * updated; node-mongodb-native to 1.4.3
2146 * fixed; $near failing against MongoDB 2.6
2147 * fixed; relying on .options() to determine if collection exists
2148 * fixed; $out aggregate helper
2149 * fixed; all test failures against MongoDB 2.6.1, with caveat #2065
2150
21513.8.8 / 2014-02-22
2152==================
2153
2154 * fixed; saving Buffers #1914
2155 * updated; expose connection states for user-land #1926 [yorkie](https://github.com/yorkie)
2156 * updated; mquery to 0.5.3
2157 * updated; added get / set to reserved path list #1903 [tstrimple](https://github.com/tstrimple)
2158 * docs; README code highlighting, syntax fixes #1930 [IonicaBizau](https://github.com/IonicaBizau)
2159 * docs; fixes link in the doc at #1925 [kapeels](https://github.com/kapeels)
2160 * docs; add a missed word 'hook' for the description of the post-hook api #1924 [ipoval](https://github.com/ipoval)
2161
21623.8.7 / 2014-02-09
2163==================
2164
2165 * fixed; sending safe/read options in Query#exec #1895
2166 * fixed; findOneAnd..() with sort #1887
2167
21683.8.6 / 2014-01-30
2169==================
2170
2171 * fixed; setting readPreferences #1895
2172
21733.8.5 / 2014-01-23
2174==================
2175
2176 * fixed; ssl setting when using URI #1882
2177 * fixed; findByIdAndUpdate now respects the overwrite option #1809 [owenallenaz](https://github.com/owenallenaz)
2178
21793.8.4 / 2014-01-07
2180==================
2181
2182 * updated; mongodb driver to 1.3.23
2183 * updated; mquery to 0.4.1
2184 * updated; mpromise to 0.4.3
2185 * fixed; discriminators now work when selecting fields #1820 [daemon1981](https://github.com/daemon1981)
2186 * fixed; geoSearch with no results timeout #1846 [ghartnett](https://github.com/ghartnett)
2187 * fixed; infitite recursion in ValidationError #1834 [chetverikov](https://github.com/chetverikov)
2188
21893.8.3 / 2013-12-17
2190==================
2191
2192 * fixed; setting empty array with model.update #1838
2193 * docs; fix url
2194
21953.8.2 / 2013-12-14
2196==================
2197
2198 * fixed; enum validation of multiple values #1778 [heroicyang](https://github.com/heroicyang)
2199 * fixed; global var leak #1803
2200 * fixed; post remove now fires on subdocs #1810
2201 * fixed; no longer set default empty array for geospatial-indexed fields #1668 [shirish87](https://github.com/shirish87)
2202 * fixed; model.stream() not hydrating discriminators correctly #1792 [j](https://github.com/j)
2203 * docs: Stablility -> Stability [nikmartin](https://github.com/nikmartin)
2204 * tests; improve shard error handling
2205
22063.8.1 / 2013-11-19
2207==================
2208
2209 * fixed; mishandling of Dates with minimize/getters #1764
2210 * fixed; Normalize bugs.email, so `npm` will shut up #1769 [refack](https://github.com/refack)
2211 * docs; Improve the grammar where "lets us" was used #1777 [alexyoung](https://github.com/alexyoung)
2212 * docs; Fix some grammatical issues in the documentation #1777 [alexyoung](https://github.com/alexyoung)
2213 * docs; fix Query api exposure
2214 * docs; fix return description
2215 * docs; Added Notes on findAndUpdate() #1750 [sstadelman](https://github.com/sstadelman)
2216 * docs; Update version number in README #1762 [Fodi69](https://github.com/Fodi69)
2217
22183.8.0 / 2013-10-31
2219==================
2220
2221 * updated; warn when using an unstable version
2222 * updated; error message returned in doc.save() #1595
2223 * updated; mongodb driver to 1.3.19 (fix error swallowing behavior)
2224 * updated; mquery to 0.3.2
2225 * updated; mocha to 1.12.0
2226 * updated; mpromise 0.3.0
2227 * updated; sliced 0.0.5
2228 * removed; mongoose.Error.DocumentError (never used)
2229 * removed; namedscope (undocumented and broken) #679 #642 #455 #379
2230 * changed; no longer offically supporting node 0.6.x
2231 * changed; query.within getter is now a method -> query.within()
2232 * changed; query.intersects getter is now a method -> query.intersects()
2233 * added; custom error msgs for built-in validators #747
2234 * added; discriminator support #1647 #1003 [j](https://github.com/j)
2235 * added; support disabled collection name pluralization #1350 #1707 [refack](https://github.com/refack)
2236 * added; support for GeoJSON to Query#near [ebensing](https://github.com/ebensing)
2237 * added; stand-alone base query support - query.toConstructor() [ebensing](https://github.com/ebensing)
2238 * added; promise support to geoSearch #1614 [ebensing](https://github.com/ebensing)
2239 * added; promise support for geoNear #1614 [ebensing](https://github.com/ebensing)
2240 * added; connection.useDb() #1124 [ebensing](https://github.com/ebensing)
2241 * added; promise support to model.mapReduce()
2242 * added; promise support to model.ensureIndexes()
2243 * added; promise support to model.populate()
2244 * added; benchmarks [ebensing](https://github.com/ebensing)
2245 * added; publicly exposed connection states #1585
2246 * added; $geoWithin support #1529 $1455 [ebensing](https://github.com/ebensing)
2247 * added; query method chain validation
2248 * added; model.update `overwrite` option
2249 * added; model.geoNear() support #1563 [ebensing](https://github.com/ebensing)
2250 * added; model.geoSearch() support #1560 [ebensing](https://github.com/ebensing)
2251 * added; MongooseBuffer#subtype()
2252 * added; model.create() now returns a promise #1340
2253 * added; support for `awaitdata` query option
2254 * added; pass the doc to doc.remove() callback #1419 [JoeWagner](https://github.com/JoeWagner)
2255 * added; aggregation query builder #1404 [njoyard](https://github.com/njoyard)
2256 * fixed; document.toObject when using `minimize` and `getters` options #1607 [JedWatson](https://github.com/JedWatson)
2257 * fixed; Mixed types can now be required #1722 [Reggino](https://github.com/Reggino)
2258 * fixed; do not pluralize model names not ending with letters #1703 [refack](https://github.com/refack)
2259 * fixed; repopulating modified populated paths #1697
2260 * fixed; doc.equals() when _id option is set to false #1687
2261 * fixed; strict mode warnings #1686
2262 * fixed; $near GeoJSON casting #1683
2263 * fixed; nearSphere GeoJSON query builder
2264 * fixed; population field selection w/ strings #1669
2265 * fixed; setters not firing on null values #1445 [ebensing](https://github.com/ebensing)
2266 * fixed; handle another versioning edge case #1520
2267 * fixed; excluding subdocument fields #1280 [ebensing](https://github.com/ebensing)
2268 * fixed; allow array properties to be set to null with findOneAndUpdate [aheuermann](https://github.com/aheuermann)
2269 * fixed; subdocuments now use own toJSON opts #1376 [ebensing](https://github.com/ebensing)
2270 * fixed; model#geoNear fulfills promise when results empty #1658 [ebensing](https://github.com/ebensing)
2271 * fixed; utils.merge no longer overrides props and methods #1655 [j](https://github.com/j)
2272 * fixed; subdocuments now use their own transform #1412 [ebensing](https://github.com/ebensing)
2273 * fixed; model.remove() removes only what is necessary #1649
2274 * fixed; update() now only runs with cb or explicit true #1644
2275 * fixed; casting ref docs on creation #1606 [ebensing](https://github.com/ebensing)
2276 * fixed; model.update "overwrite" option works as documented
2277 * fixed; query#remove() works as documented
2278 * fixed; "limit" correctly applies to individual items on population #1490 [ebensing](https://github.com/ebensing)
2279 * fixed; issue with positional operator on ref docs #1572 [ebensing](https://github.com/ebensing)
2280 * fixed; benchmarks to actually output valid json
2281 * deprecated; promise#addBack (use promise#onResolve)
2282 * deprecated; promise#complete (use promise#fulfill)
2283 * deprecated; promise#addCallback (use promise#onFulFill)
2284 * deprecated; promise#addErrback (use promise#onReject)
2285 * deprecated; query.nearSphere() (use query.near)
2286 * deprecated; query.center() (use query.circle)
2287 * deprecated; query.centerSphere() (use query.circle)
2288 * deprecated; query#slaveOk (use query#read)
2289 * docs; custom validator messages
2290 * docs; 10gen -> MongoDB
2291 * docs; add Date method caveats #1598
2292 * docs; more validation details
2293 * docs; state which branch is stable/unstable
2294 * docs; mention that middleware does not run on Models
2295 * docs; promise.fulfill()
2296 * docs; fix readme spelling #1483 [yorchopolis](https://github.com/yorchopolis)
2297 * docs; fixed up the README and examples [ebensing](https://github.com/ebensing)
2298 * website; add "show code" for properties
2299 * website; move "show code" links down
2300 * website; update guide
2301 * website; add unstable docs
2302 * website; many improvements
2303 * website; fix copyright #1439
2304 * website; server.js -> static.js #1546 [nikmartin](https://github.com/nikmartin)
2305 * tests; refactor 1703
2306 * tests; add test generator
2307 * tests; validate formatMessage() throws
2308 * tests; add script for continuously running tests
2309 * tests; fixed versioning tests
2310 * tests; race conditions in tests
2311 * tests; added for nested and/or queries
2312 * tests; close some test connections
2313 * tests; validate db contents
2314 * tests; remove .only
2315 * tests; close some test connections
2316 * tests; validate db contents
2317 * tests; remove .only
2318 * tests; replace deprecated method names
2319 * tests; convert id to string
2320 * tests; fix sharding tests for MongoDB 2.4.5
2321 * tests; now 4-5 seconds faster
2322 * tests; fix race condition
2323 * make; suppress warning msg in test
2324 * benchmarks; updated for pull requests
2325 * examples; improved and expanded [ebensing](https://github.com/ebensing)
2326
23273.7.4 (unstable) / 2013-10-01
2328=============================
2329
2330 * updated; mquery to 0.3.2
2331 * removed; mongoose.Error.DocumentError (never used)
2332 * added; custom error msgs for built-in validators #747
2333 * added; discriminator support #1647 #1003 [j](https://github.com/j)
2334 * added; support disabled collection name pluralization #1350 #1707 [refack](https://github.com/refack)
2335 * fixed; do not pluralize model names not ending with letters #1703 [refack](https://github.com/refack)
2336 * fixed; repopulating modified populated paths #1697
2337 * fixed; doc.equals() when _id option is set to false #1687
2338 * fixed; strict mode warnings #1686
2339 * fixed; $near GeoJSON casting #1683
2340 * fixed; nearSphere GeoJSON query builder
2341 * fixed; population field selection w/ strings #1669
2342 * docs; custom validator messages
2343 * docs; 10gen -> MongoDB
2344 * docs; add Date method caveats #1598
2345 * docs; more validation details
2346 * website; add "show code" for properties
2347 * website; move "show code" links down
2348 * tests; refactor 1703
2349 * tests; add test generator
2350 * tests; validate formatMessage() throws
2351
23523.7.3 (unstable) / 2013-08-22
2353=============================
2354
2355  * updated; warn when using an unstable version
2356  * updated; mquery to 0.3.1
2357  * updated; mocha to 1.12.0
2358  * updated; mongodb driver to 1.3.19 (fix error swallowing behavior)
2359  * changed; no longer offically supporting node 0.6.x
2360  * added; support for GeoJSON to Query#near [ebensing](https://github.com/ebensing)
2361  * added; stand-alone base query support - query.toConstructor() [ebensing](https://github.com/ebensing)
2362  * added; promise support to geoSearch #1614 [ebensing](https://github.com/ebensing)
2363  * added; promise support for geoNear #1614 [ebensing](https://github.com/ebensing)
2364  * fixed; setters not firing on null values #1445 [ebensing](https://github.com/ebensing)
2365  * fixed; handle another versioning edge case #1520
2366  * fixed; excluding subdocument fields #1280 [ebensing](https://github.com/ebensing)
2367  * fixed; allow array properties to be set to null with findOneAndUpdate [aheuermann](https://github.com/aheuermann)
2368  * fixed; subdocuments now use own toJSON opts #1376 [ebensing](https://github.com/ebensing)
2369  * fixed; model#geoNear fulfills promise when results empty #1658 [ebensing](https://github.com/ebensing)
2370  * fixed; utils.merge no longer overrides props and methods #1655 [j](https://github.com/j)
2371  * fixed; subdocuments now use their own transform #1412 [ebensing](https://github.com/ebensing)
2372  * make; suppress warning msg in test
2373  * docs; state which branch is stable/unstable
2374  * docs; mention that middleware does not run on Models
2375  * tests; add script for continuously running tests
2376  * tests; fixed versioning tests
2377  * benchmarks; updated for pull requests
2378
23793.7.2 (unstable) / 2013-08-15
2380==================
2381
2382  * fixed; model.remove() removes only what is necessary #1649
2383  * fixed; update() now only runs with cb or explicit true #1644
2384  * tests; race conditions in tests
2385  * website; update guide
2386
23873.7.1 (unstable) / 2013-08-13
2388=============================
2389
2390  * updated; driver to 1.3.18 (fixes memory leak)
2391  * added; connection.useDb() #1124 [ebensing](https://github.com/ebensing)
2392  * added; promise support to model.mapReduce()
2393  * added; promise support to model.ensureIndexes()
2394  * added; promise support to model.populate()
2395  * fixed; casting ref docs on creation #1606 [ebensing](https://github.com/ebensing)
2396  * fixed; model.update "overwrite" option works as documented
2397  * fixed; query#remove() works as documented
2398  * fixed; "limit" correctly applies to individual items on population #1490 [ebensing](https://github.com/ebensing)
2399  * fixed; issue with positional operator on ref docs #1572 [ebensing](https://github.com/ebensing)
2400  * fixed; benchmarks to actually output valid json
2401  * tests; added for nested and/or queries
2402  * tests; close some test connections
2403  * tests; validate db contents
2404  * tests; remove .only
2405  * tests; close some test connections
2406  * tests; validate db contents
2407  * tests; remove .only
2408  * tests; replace deprecated method names
2409  * tests; convert id to string
2410  * docs; promise.fulfill()
2411
24123.7.0 (unstable) / 2013-08-05
2413===================
2414
2415  * changed; query.within getter is now a method -> query.within()
2416  * changed; query.intersects getter is now a method -> query.intersects()
2417  * deprecated; promise#addBack (use promise#onResolve)
2418  * deprecated; promise#complete (use promise#fulfill)
2419  * deprecated; promise#addCallback (use promise#onFulFill)
2420  * deprecated; promise#addErrback (use promise#onReject)
2421  * deprecated; query.nearSphere() (use query.near)
2422  * deprecated; query.center() (use query.circle)
2423  * deprecated; query.centerSphere() (use query.circle)
2424  * deprecated; query#slaveOk (use query#read)
2425  * removed; namedscope (undocumented and broken) #679 #642 #455 #379
2426  * added; benchmarks [ebensing](https://github.com/ebensing)
2427  * added; publicly exposed connection states #1585
2428  * added; $geoWithin support #1529 $1455 [ebensing](https://github.com/ebensing)
2429  * added; query method chain validation
2430  * added; model.update `overwrite` option
2431  * added; model.geoNear() support #1563 [ebensing](https://github.com/ebensing)
2432  * added; model.geoSearch() support #1560 [ebensing](https://github.com/ebensing)
2433  * added; MongooseBuffer#subtype()
2434  * added; model.create() now returns a promise #1340
2435  * added; support for `awaitdata` query option
2436  * added; pass the doc to doc.remove() callback #1419 [JoeWagner](https://github.com/JoeWagner)
2437  * added; aggregation query builder #1404 [njoyard](https://github.com/njoyard)
2438  * updated; integrate mquery #1562 [ebensing](https://github.com/ebensing)
2439  * updated; error msg in doc.save() #1595
2440  * updated; bump driver to 1.3.15
2441  * updated; mpromise 0.3.0
2442  * updated; sliced 0.0.5
2443  * tests; fix sharding tests for MongoDB 2.4.5
2444  * tests; now 4-5 seconds faster
2445  * tests; fix race condition
2446  * docs; fix readme spelling #1483 [yorchopolis](https://github.com/yorchopolis)
2447  * docs; fixed up the README and examples [ebensing](https://github.com/ebensing)
2448  * website; add unstable docs
2449  * website; many improvements
2450  * website; fix copyright #1439
2451  * website; server.js -> static.js #1546 [nikmartin](https://github.com/nikmartin)
2452  * examples; improved and expanded [ebensing](https://github.com/ebensing)
2453
24543.6.20 (stable) / 2013-09-23
2455===================
2456
2457 * fixed; repopulating modified populated paths #1697
2458 * fixed; doc.equals w/ _id false #1687
2459 * fixed; strict mode warning #1686
2460 * docs; near/nearSphere
2461
24623.6.19 (stable) / 2013-09-04
2463==================
2464
2465  * fixed; population field selection w/ strings #1669
2466  * docs; Date method caveats #1598
2467
24683.6.18 (stable) / 2013-08-22
2469===================
2470
2471  * updated; warn when using an unstable version of mongoose
2472  * updated; mocha to 1.12.0
2473  * updated; mongodb driver to 1.3.19 (fix error swallowing behavior)
2474  * fixed; setters not firing on null values #1445 [ebensing](https://github.com/ebensing)
2475  * fixed; properly exclude subdocument fields #1280 [ebensing](https://github.com/ebensing)
2476  * fixed; cast error in findAndModify #1643 [aheuermann](https://github.com/aheuermann)
2477  * website; update guide
2478  * website; added documentation for safe:false and versioning interaction
2479  * docs; mention that middleware dont run on Models
2480  * docs; fix indexes link
2481  * make; suppress warning msg in test
2482  * tests; moar
2483
24843.6.17 / 2013-08-13
2485===================
2486
2487  * updated; driver to 1.3.18 (fixes memory leak)
2488  * fixed; casting ref docs on creation #1606
2489  * docs; query options
2490
24913.6.16 / 2013-08-08
2492===================
2493
2494  * added; publicly expose connection states #1585
2495  * fixed; limit applies to individual items on population #1490 [ebensing](https://github.com/ebensing)
2496  * fixed; positional operator casting in updates #1572 [ebensing](https://github.com/ebensing)
2497  * updated; MongoDB driver to 1.3.17
2498  * updated; sliced to 0.0.5
2499  * website; tweak homepage
2500  * tests; fixed + added
2501  * docs; fix some examples
2502  * docs; multi-mongos support details
2503  * docs; auto open browser after starting static server
2504
25053.6.15 / 2013-07-16
2506==================
2507
2508  * added; mongos failover support #1037
2509  * updated; make schematype return vals return self #1580
2510  * docs; add note to model.update #571
2511  * docs; document third param to document.save callback #1536
2512  * tests; tweek mongos test timeout
2513
25143.6.14 / 2013-07-05
2515===================
2516
2517  * updated; driver to 1.3.11
2518  * fixed; issue with findOneAndUpdate not returning null on upserts #1533 [ebensing](https://github.com/ebensing)
2519  * fixed; missing return statement in SchemaArray#$geoIntersects() #1498 [bsrykt](https://github.com/bsrykt)
2520  * fixed; wrong isSelected() behavior #1521 [kyano](https://github.com/kyano)
2521  * docs; note about toObject behavior during save()
2522  * docs; add callbacks details #1547 [nikmartin](https://github.com/nikmartin)
2523
25243.6.13 / 2013-06-27
2525===================
2526
2527  * fixed; calling model.distinct without conditions #1541
2528  * fixed; regression in Query#count() #1542
2529  * now working on 3.6.13
2530
25313.6.12 / 2013-06-25
2532===================
2533
2534  * updated; driver to 1.3.10
2535  * updated; clearer capped collection error message #1509 [bitmage](https://github.com/bitmage)
2536  * fixed; MongooseBuffer subtype loss during casting #1517 [zedgu](https://github.com/zedgu)
2537  * fixed; docArray#id when doc.id is disabled #1492
2538  * fixed; docArray#id now supports matches on populated arrays #1492 [pgherveou](https://github.com/pgherveou)
2539  * website; fix example
2540  * website; improve _id disabling example
2541  * website; fix typo #1494 [dejj](https://github.com/dejj)
2542  * docs; added a 'Requesting new features' section #1504 [shovon](https://github.com/shovon)
2543  * docs; improve subtypes description
2544  * docs; clarify _id disabling
2545  * docs: display by alphabetical order the methods list #1508 [nicolasleger](https://github.com/nicolasleger)
2546  * tests; refactor isSelected checks
2547  * tests; remove pointless test
2548  * tests; fixed timeouts
2549
25503.6.11 / 2013-05-15
2551===================
2552
2553  * updated; driver to 1.3.5
2554  * fixed; compat w/ Object.create(null) #1484 #1485
2555  * fixed; cloning objects w/ missing constructors
2556  * fixed; prevent multiple min number validators #1481 [nrako](https://github.com/nrako)
2557  * docs; add doc.increment() example
2558  * docs; add $size example
2559  * docs; add "distinct" example
2560
25613.6.10 / 2013-05-09
2562==================
2563
2564  * update driver to 1.3.3
2565  * fixed; increment() works without other changes #1475
2566  * website; fix links to posterous
2567  * docs; fix link #1472
2568
25693.6.9 / 2013-05-02
2570==================
2571
2572  * fixed; depopulation of mixed documents #1471
2573  * fixed; use of $options in array #1462
2574  * tests; fix race condition
2575  * docs; fix default example
2576
25773.6.8 / 2013-04-25
2578==================
2579
2580  * updated; driver to 1.3.0
2581  * fixed; connection.model should retain options #1458 [vedmalex](https://github.com/vedmalex)
2582  * tests; 4-5 seconds faster
2583
25843.6.7 / 2013-04-19
2585==================
2586
2587  * fixed; population regression in 3.6.6 #1444
2588
25893.6.6 / 2013-04-18
2590==================
2591
2592  * fixed; saving populated new documents #1442
2593  * fixed; population regession in 3.6.5 #1441
2594  * website; fix copyright #1439
2595
25963.6.5 / 2013-04-15
2597==================
2598
2599  * fixed; strict:throw edge case using .set(path, val)
2600  * fixed; schema.pathType() on some numbericAlpha paths
2601  * fixed; numbericAlpha path versioning
2602  * fixed; setting nested mixed paths #1418
2603  * fixed; setting nested objects with null prop #1326
2604  * fixed; regression in v3.6 population performance #1426 [vedmalex](https://github.com/vedmalex)
2605  * fixed; read pref typos #1422 [kyano](https://github.com/kyano)
2606  * docs; fix method example
2607  * website; update faq
2608  * website; add more deep links
2609  * website; update poolSize docs
2610  * website; add 3.6 release notes
2611  * website; note about keepAlive
2612
26133.6.4 / 2013-04-03
2614==================
2615
2616  * fixed; +field conflict with $slice #1370
2617  * fixed; nested deselection conflict #1333
2618  * fixed; RangeError in ValidationError.toString() #1296
2619  * fixed; do not save user defined transforms #1415
2620  * tests; fix race condition
2621
26223.6.3 / 2013-04-02
2623==================
2624
2625  * fixed; setting subdocuments deeply nested fields #1394
2626  * fixed; regression: populated streams #1411
2627  * docs; mention hooks/validation with findAndModify
2628  * docs; mention auth
2629  * docs; add more links
2630  * examples; add document methods example
2631  * website; display "see" links for properties
2632  * website; clean up homepage
2633
26343.6.2 / 2013-03-29
2635==================
2636
2637  * fixed; corrupted sub-doc array #1408
2638  * fixed; document#update returns a Query #1397
2639  * docs; readpref strategy
2640
26413.6.1 / 2013-03-27
2642==================
2643
2644  * added; populate support to findAndModify varients #1395
2645  * added; text index type to schematypes
2646  * expose allowed index types as Schema.indexTypes
2647  * fixed; use of `setMaxListeners` as path
2648  * fixed; regression in node 0.6 on docs with > 10 arrays
2649  * fixed; do not alter schema arguments #1364
2650  * fixed; subdoc#ownerDocument() #1385
2651  * website; change search id
2652  * website; add search from google [jackdbernier](https://github.com/jackdbernier)
2653  * website; fix link
2654  * website; add 3.5.x docs release
2655  * website; fix link
2656  * docs; fix geometry
2657  * docs; hide internal constructor
2658  * docs; aggregation does not cast arguments #1399
2659  * docs; querystream options
2660  * examples; added for population
2661
26623.6.0 / 2013-03-18
2663==================
2664
2665  * changed; cast 'true'/'false' to boolean #1282 [mgrach](https://github.com/mgrach)
2666  * changed; Buffer arrays can now contain nulls
2667  * added; QueryStream transform option
2668  * added; support for authSource driver option
2669  * added; {mongoose,db}.modelNames()
2670  * added; $push w/ $slice,$sort support (MongoDB 2.4)
2671  * added; hashed index type (MongoDB 2.4)
2672  * added; support for mongodb 2.4 geojson (MongoDB 2.4)
2673  * added; value at time of validation error
2674  * added; support for object literal schemas
2675  * added; bufferCommands schema option
2676  * added; allow auth option in connections #1360 [geoah](https://github.com/geoah)
2677  * added; performance improvements to populate() [263ece9](https://github.com/LearnBoost/mongoose/commit/263ece9)
2678  * added; allow adding uncasted docs to populated arrays and properties #570
2679  * added; doc#populated(path) stores original populated _ids
2680  * added; lean population #1260
2681  * added; query.populate() now accepts an options object
2682  * added; document#populate(opts, callback)
2683  * added; Model.populate(docs, opts, callback)
2684  * added; support for rich nested path population
2685  * added; doc.array.remove(value) subdoc with _id value support #1278
2686  * added; optionally allow non-strict sets and updates
2687  * added; promises/A+ comformancy with [mpromise](https://github.com/aheckmann/mpromise)
2688  * added; promise#then
2689  * added; promise#end
2690  * fixed; use of `model` as doc property
2691  * fixed; lean population #1382
2692  * fixed; empty object mixed defaults #1380
2693  * fixed; populate w/ deselected _id using string syntax
2694  * fixed; attempted save of divergent populated arrays #1334 related
2695  * fixed; better error msg when attempting toObject as property name
2696  * fixed; non population buffer casting from doc
2697  * fixed; setting populated paths #570
2698  * fixed; casting when added docs to populated arrays #570
2699  * fixed; prohibit updating arrays selected with $elemMatch #1334
2700  * fixed; pull / set subdoc combination #1303
2701  * fixed; multiple bg index creation #1365
2702  * fixed; manual reconnection to single mongod
2703  * fixed; Constructor / version exposure #1124
2704  * fixed; CastError race condition
2705  * fixed; no longer swallowing misuse of subdoc#invalidate()
2706  * fixed; utils.clone retains RegExp opts
2707  * fixed; population of non-schema property
2708  * fixed; allow updating versionKey #1265
2709  * fixed; add EventEmitter props to reserved paths #1338
2710  * fixed; can now deselect populated doc _ids #1331
2711  * fixed; properly pass subtype to Binary in MongooseBuffer
2712  * fixed; casting _id from document with non-ObjectId _id
2713  * fixed; specifying schema type edge case { path: [{type: "String" }] }
2714  * fixed; typo in schemdate #1329 [jplock](https://github.com/jplock)
2715  * updated; driver to 1.2.14
2716  * updated; muri to 0.3.1
2717  * updated; mpromise to 0.2.1
2718  * updated; mocha 1.8.1
2719  * updated; mpath to 0.1.1
2720  * deprecated; pluralization will die in 4.x
2721  * refactor; rename private methods to something unusable as doc properties
2722  * refactor MongooseArray#remove
2723  * refactor; move expires index to SchemaDate #1328
2724  * refactor; internal document properties #1171 #1184
2725  * tests; added
2726  * docs; indexes
2727  * docs; validation
2728  * docs; populate
2729  * docs; populate
2730  * docs; add note about stream compatibility with node 0.8
2731  * docs; fix for private names
2732  * docs; Buffer -> mongodb.Binary #1363
2733  * docs; auth options
2734  * docs; improved
2735  * website; update FAQ
2736  * website; add more api links
2737  * website; add 3.5.x docs to prior releases
2738  * website; Change mongoose-types to an active repo [jackdbernier](https://github.com/jackdbernier)
2739  * website; compat with node 0.10
2740  * website; add news section
2741  * website; use T for generic type
2742  * benchmark; make adjustable
2743
27443.6.0rc1 / 2013-03-12
2745======================
2746
2747  * refactor; rename private methods to something unusable as doc properties
2748  * added; {mongoose,db}.modelNames()
2749  * added; $push w/ $slice,$sort support (MongoDB 2.4)
2750  * added; hashed index type (MongoDB 2.4)
2751  * added; support for mongodb 2.4 geojson (MongoDB 2.4)
2752  * added; value at time of validation error
2753  * added; support for object literal schemas
2754  * added; bufferCommands schema option
2755  * added; allow auth option in connections #1360 [geoah](https://github.com/geoah)
2756  * fixed; lean population #1382
2757  * fixed; empty object mixed defaults #1380
2758  * fixed; populate w/ deselected _id using string syntax
2759  * fixed; attempted save of divergent populated arrays #1334 related
2760  * fixed; better error msg when attempting toObject as property name
2761  * fixed; non population buffer casting from doc
2762  * fixed; setting populated paths #570
2763  * fixed; casting when added docs to populated arrays #570
2764  * fixed; prohibit updating arrays selected with $elemMatch #1334
2765  * fixed; pull / set subdoc combination #1303
2766  * fixed; multiple bg index creation #1365
2767  * fixed; manual reconnection to single mongod
2768  * fixed; Constructor / version exposure #1124
2769  * fixed; CastError race condition
2770  * fixed; no longer swallowing misuse of subdoc#invalidate()
2771  * fixed; utils.clone retains RegExp opts
2772  * fixed; population of non-schema property
2773  * fixed; allow updating versionKey #1265
2774  * fixed; add EventEmitter props to reserved paths #1338
2775  * fixed; can now deselect populated doc _ids #1331
2776  * updated; muri to 0.3.1
2777  * updated; driver to 1.2.12
2778  * updated; mpromise to 0.2.1
2779  * deprecated; pluralization will die in 4.x
2780  * docs; Buffer -> mongodb.Binary #1363
2781  * docs; auth options
2782  * docs; improved
2783  * website; add news section
2784  * benchmark; make adjustable
2785
27863.6.0rc0 / 2013-02-03
2787======================
2788
2789  * changed; cast 'true'/'false' to boolean #1282 [mgrach](https://github.com/mgrach)
2790  * changed; Buffer arrays can now contain nulls
2791  * fixed; properly pass subtype to Binary in MongooseBuffer
2792  * fixed; casting _id from document with non-ObjectId _id
2793  * fixed; specifying schema type edge case { path: [{type: "String" }] }
2794  * fixed; typo in schemdate #1329 [jplock](https://github.com/jplock)
2795  * refactor; move expires index to SchemaDate #1328
2796  * refactor; internal document properties #1171 #1184
2797  * added; performance improvements to populate() [263ece9](https://github.com/LearnBoost/mongoose/commit/263ece9)
2798  * added; allow adding uncasted docs to populated arrays and properties #570
2799  * added; doc#populated(path) stores original populated _ids
2800  * added; lean population #1260
2801  * added; query.populate() now accepts an options object
2802  * added; document#populate(opts, callback)
2803  * added; Model.populate(docs, opts, callback)
2804  * added; support for rich nested path population
2805  * added; doc.array.remove(value) subdoc with _id value support #1278
2806  * added; optionally allow non-strict sets and updates
2807  * added; promises/A+ comformancy with [mpromise](https://github.com/aheckmann/mpromise)
2808  * added; promise#then
2809  * added; promise#end
2810  * updated; mocha 1.8.1
2811  * updated; muri to 0.3.0
2812  * updated; mpath to 0.1.1
2813  * updated; docs
2814
28153.5.16 / 2013-08-13
2816===================
2817
2818  * updated; driver to 1.3.18
2819
28203.5.15 / 2013-07-26
2821==================
2822
2823  * updated; sliced to 0.0.5
2824  * updated; driver to 1.3.12
2825  * fixed; regression in Query#count() due to driver change
2826  * tests; fixed timeouts
2827  * tests; handle differing test uris
2828
28293.5.14 / 2013-05-15
2830===================
2831
2832  * updated; driver to 1.3.5
2833  * fixed; compat w/ Object.create(null) #1484 #1485
2834  * fixed; cloning objects missing constructors
2835  * fixed; prevent multiple min number validators #1481 [nrako](https://github.com/nrako)
2836
28373.5.13 / 2013-05-09
2838==================
2839
2840  * update driver to 1.3.3
2841  * fixed; use of $options in array #1462
2842
28433.5.12 / 2013-04-25
2844===================
2845
2846  * updated; driver to 1.3.0
2847  * fixed; connection.model should retain options #1458 [vedmalex](https://github.com/vedmalex)
2848  * fixed; read pref typos #1422 [kyano](https://github.com/kyano)
2849
28503.5.11 / 2013-04-03
2851==================
2852
2853  * fixed; +field conflict with $slice #1370
2854  * fixed; RangeError in ValidationError.toString() #1296
2855  * fixed; nested deselection conflict #1333
2856  * remove time from Makefile
2857
28583.5.10 / 2013-04-02
2859==================
2860
2861  * fixed; setting subdocuments deeply nested fields #1394
2862  * fixed; do not alter schema arguments #1364
2863
28643.5.9 / 2013-03-15
2865==================
2866
2867  * updated; driver to 1.2.14
2868  * added; support for authSource driver option (mongodb 2.4)
2869  * added; QueryStream transform option (node 0.10 helper)
2870  * fixed; backport for saving required populated buffers
2871  * fixed; pull / set subdoc combination #1303
2872  * fixed; multiple bg index creation #1365
2873  * test; added for saveable required populated buffers
2874  * test; added for #1365
2875  * test; add authSource test
2876
28773.5.8 / 2013-03-12
2878==================
2879
2880  * added; auth option in connection [geoah](https://github.com/geoah)
2881  * fixed; CastError race condition
2882  * docs; add note about stream compatibility with node 0.8
2883
28843.5.7 / 2013-02-22
2885==================
2886
2887  * updated; driver to 1.2.13
2888  * updated; muri to 0.3.1 #1347
2889  * fixed; utils.clone retains RegExp opts #1355
2890  * fixed; deepEquals RegExp support
2891  * tests; fix a connection test
2892  * website; clean up docs [afshinm](https://github.com/afshinm)
2893  * website; update homepage
2894  * website; migragtion: emphasize impact of strict docs #1264
2895
28963.5.6 / 2013-02-14
2897==================
2898
2899  * updated; driver to 1.2.12
2900  * fixed; properly pass Binary subtype
2901  * fixed; add EventEmitter props to reserved paths #1338
2902  * fixed; use correct node engine version
2903  * fixed; display empty docs as {} in log output #953 follow up
2904  * improved; "bad $within $box argument" error message
2905  * populate; add unscientific benchmark
2906  * website; add stack overflow to help section
2907  * website; use better code font #1336 [risseraka](https://github.com/risseraka)
2908  * website; clarify where help is available
2909  * website; fix source code links #1272 [floatingLomas](https://github.com/floatingLomas)
2910  * docs; be specific about _id schema option #1103
2911  * docs; add ensureIndex error handling example
2912  * docs; README
2913  * docs; CONTRIBUTING.md
2914
29153.5.5 / 2013-01-29
2916==================
2917
2918  * updated; driver to 1.2.11
2919  * removed; old node < 0.6x shims
2920  * fixed; documents with Buffer _ids equality
2921  * fixed; MongooseBuffer properly casts numbers
2922  * fixed; reopening closed connection on alt host/port #1287
2923  * docs; fixed typo in Readme #1298 [rened](https://github.com/rened)
2924  * docs; fixed typo in migration docs [Prinzhorn](https://github.com/Prinzhorn)
2925  * docs; fixed incorrect annotation in SchemaNumber#min [bilalq](https://github.com/bilalq)
2926  * docs; updated
2927
29283.5.4 / 2013-01-07
2929==================
2930
2931  * changed; "_pres" & "_posts" are now reserved pathnames #1261
2932  * updated; driver to 1.2.8
2933  * fixed; exception when reopening a replica set. #1263 [ethankan](https://github.com/ethankan)
2934  * website; updated
2935
29363.5.3 / 2012-12-26
2937==================
2938
2939  * added; support for geo object notation #1257
2940  * fixed; $within query casting with arrays
2941  * fixed; unix domain socket support #1254
2942  * updated; driver to 1.2.7
2943  * updated; muri to 0.0.5
2944
29453.5.2 / 2012-12-17
2946==================
2947
2948  * fixed; using auth with replica sets #1253
2949
29503.5.1 / 2012-12-12
2951==================
2952
2953  * fixed; regression when using subdoc with `path` as pathname #1245 [daeq](https://github.com/daeq)
2954  * fixed; safer db option checks
2955  * updated; driver to 1.2.5
2956  * website; add more examples
2957  * website; clean up old docs
2958  * website; fix prev release urls
2959  * docs; clarify streaming with HTTP responses
2960
29613.5.0 / 2012-12-10
2962==================
2963
2964  * added; paths to CastErrors #1239
2965  * added; support for mongodb connection string spec #1187
2966  * added; post validate event
2967  * added; Schema#get (to retrieve schema options)
2968  * added; VersionError #1071
2969  * added; npmignore [hidekiy](https://github.com/hidekiy)
2970  * update; driver to 1.2.3
2971  * fixed; stackoverflow in setter #1234
2972  * fixed; utils.isObject()
2973  * fixed; do not clobber user specified driver writeConcern #1227
2974  * fixed; always pass current document to post hooks
2975  * fixed; throw error when user attempts to overwrite a model
2976  * fixed; connection.model only caches on connection #1209
2977  * fixed; respect conn.model() creation when matching global model exists #1209
2978  * fixed; passing model name + collection name now always honors collection name
2979  * fixed; setting virtual field to an empty object #1154
2980  * fixed; subclassed MongooseErrors exposure, now available in mongoose.Error.xxxx
2981  * fixed; model.remove() ignoring callback when executed twice [daeq](https://github.com/daeq) #1210
2982  * docs; add collection option to schema api docs #1222
2983  * docs; NOTE about db safe options
2984  * docs; add post hooks docs
2985  * docs; connection string options
2986  * docs; middleware is not executed with Model.remove #1241
2987  * docs; {g,s}etter introspection #777
2988  * docs; update validation docs
2989  * docs; add link to plugins page
2990  * docs; clarify error returned by unique indexes #1225
2991  * docs; more detail about disabling autoIndex behavior
2992  * docs; add homepage section to package (npm docs mongoose)
2993  * docs; more detail around collection name pluralization #1193
2994  * website; add .important css
2995  * website; update models page
2996  * website; update getting started
2997  * website; update quick start
2998
29993.4.0 / 2012-11-10
3000==================
3001
3002  * added; support for generic toJSON/toObject transforms #1160 #1020 #1197
3003  * added; doc.set() merge support #1148 [NuORDER](https://github.com/NuORDER)
3004  * added; query#add support #1188 [aleclofabbro](https://github.com/aleclofabbro)
3005  * changed; adding invalid nested paths to non-objects throws 4216f14
3006  * changed; fixed; stop invalid function cloning (internal fix)
3007  * fixed; add query $and casting support #1180 [anotheri](https://github.com/anotheri)
3008  * fixed; overwriting of query arguments #1176
3009  * docs; fix expires examples
3010  * docs; transforms
3011  * docs; schema `collection` option docs [hermanjunge](https://github.com/hermanjunge)
3012  * website; updated
3013  * tests; added
3014
30153.3.1 / 2012-10-11
3016==================
3017
3018  * fixed; allow goose.connect(uris, dbname, opts) #1144
3019  * docs; persist API private checked state across page loads
3020
30213.3.0 / 2012-10-10
3022==================
3023
3024  * fixed; passing options as 2nd arg to connect() #1144
3025  * fixed; race condition after no-op save #1139
3026  * fixed; schema field selection application in findAndModify #1150
3027  * fixed; directly setting arrays #1126
3028  * updated; driver to 1.1.11
3029  * updated; collection pluralization rules [mrickard](https://github.com/mrickard)
3030  * tests; added
3031  * docs; updated
3032
30333.2.2 / 2012-10-08
3034==================
3035
3036  * updated; driver to 1.1.10 #1143
3037  * updated; use sliced 0.0.3
3038  * fixed; do not recast embedded docs unnecessarily
3039  * fixed; expires schema option helper #1132
3040  * fixed; built in string setters #1131
3041  * fixed; debug output for Dates/ObjectId properties #1129
3042  * docs; fixed Javascript syntax error in example [olalonde](https://github.com/olalonde)
3043  * docs; fix toJSON example #1137
3044  * docs; add ensureIndex production notes
3045  * docs; fix spelling
3046  * docs; add blogposts about v3
3047  * website; updated
3048  * removed; undocumented inGroupsOf util
3049  * tests; added
3050
30513.2.1 / 2012-09-28
3052==================
3053
3054  * fixed; remove query batchSize option default of 1000 https://github.com/learnboost/mongoose/commit/3edaa8651
3055  * docs; updated
3056  * website; updated
3057
30583.2.0 / 2012-09-27
3059==================
3060
3061  * added; direct array index assignment with casting support `doc.array.set(index, value)`
3062  * fixed; QueryStream#resume within same tick as pause() #1116
3063  * fixed; default value validatation #1109
3064  * fixed; array splice() not casting #1123
3065  * fixed; default array construction edge case #1108
3066  * fixed; query casting for inequalities in arrays #1101 [dpatti](https://github.com/dpatti)
3067  * tests; added
3068  * website; more documentation
3069  * website; fixed layout issue #1111 [SlashmanX](https://github.com/SlashmanX)
3070  * website; refactored [guille](https://github.com/guille)
3071
30723.1.2 / 2012-09-10
3073==================
3074
3075  * added; ReadPreferrence schema option #1097
3076  * updated; driver to 1.1.7
3077  * updated; default query batchSize to 1000
3078  * fixed; we now cast the mapReduce query option #1095
3079  * fixed; $elemMatch+$in with field selection #1091
3080  * fixed; properly cast $elemMatch+$in conditions #1100
3081  * fixed; default field application of subdocs #1027
3082  * fixed; querystream prematurely dying #1092
3083  * fixed; querystream never resumes when paused at getMore boundries #1092
3084  * fixed; querystream occasionally emits data events after destroy #1092
3085  * fixed; remove unnecessary ObjectId creation in querystream
3086  * fixed; allow ne(boolean) again #1093
3087  * docs; add populate/field selection syntax notes
3088  * docs; add toObject/toJSON options detail
3089  * docs; `read` schema option
3090
30913.1.1 / 2012-08-31
3092==================
3093
3094  * updated; driver to 1.1.6
3095
30963.1.0 / 2012-08-29
3097==================
3098
3099  * changed; fixed; directly setting nested objects now overwrites entire object (previously incorrectly merged them)
3100  * added; read pref support (mongodb 2.2) 205a709c
3101  * added; aggregate support (mongodb 2.2) f3a5bd3d
3102  * added; virtual {g,s}etter introspection (#1070)
3103  * updated; docs [brettz9](https://github.com/brettz9)
3104  * updated; driver to 1.1.5
3105  * fixed; retain virtual setter return values (#1069)
3106
31073.0.3 / 2012-08-23
3108==================
3109
3110  * fixed; use of nested paths beginning w/ numbers #1062
3111  * fixed; query population edge case #1053 #1055 [jfremy](https://github.com/jfremy)
3112  * fixed; simultaneous top and sub level array modifications #1073
3113  * added; id and _id schema option aliases + tests
3114  * improve debug formatting to allow copy/paste logged queries into mongo shell [eknkc](https://github.com/eknkc)
3115  * docs
3116
31173.0.2 / 2012-08-17
3118==================
3119
3120  * added; missing support for v3 sort/select syntax to findAndModify helpers (#1058)
3121  * fixed; replset fullsetup event emission
3122  * fixed; reconnected event for replsets
3123  * fixed; server reconnection setting discovery
3124  * fixed; compat with non-schema path props using positional notation (#1048)
3125  * fixed; setter/casting order (#665)
3126  * docs; updated
3127
31283.0.1 / 2012-08-11
3129==================
3130
3131  * fixed; throw Error on bad validators (1044)
3132  * fixed; typo in EmbeddedDocument#parentArray [lackac]
3133  * fixed; repair mongoose.SchemaTypes alias
3134  * updated; docs
3135
31363.0.0 / 2012-08-07
3137==================
3138
3139  * removed; old subdocument#commit method
3140  * fixed; setting arrays of matching docs [6924cbc2]
3141  * fixed; doc!remove event now emits in save order as save for consistency
3142  * fixed; pre-save hooks no longer fire on subdocuments when validation fails
3143  * added; subdoc#parent() and subdoc#parentArray() to access subdocument parent objects
3144  * added; query#lean() helper
3145
31463.0.0rc0 / 2012-08-01
3147=====================
3148
3149  * fixed; allow subdoc literal declarations containing "type" pathname (#993)
3150  * fixed; unsetting a default array (#758)
3151  * fixed; boolean $in queries (#998)
3152  * fixed; allow use of `options` as a pathname (#529)
3153  * fixed; `model` is again a permitted schema path name
3154  * fixed; field selection option on subdocs (#1022)
3155  * fixed; handle another edge case with subdoc saving (#975)
3156  * added; emit save err on model if listening
3157  * added; MongoDB TTL collection support (#1006)
3158  * added; $center options support
3159  * added; $nearSphere and $polygon support
3160  * updated; driver version to 1.1.2
3161
31623.0.0alpha2 / 2012-07-18
3163=========================
3164
3165  * changed; index errors are now emitted on their model and passed to an optional callback (#984)
3166  * fixed; specifying index along with sparse/unique option no longer overwrites (#1004)
3167  * fixed; never swallow connection errors (#618)
3168  * fixed; creating object from model with emded object no longer overwrites defaults [achurkin] (#859)
3169  * fixed; stop needless validation of unchanged/unselected fields (#891)
3170  * fixed; document#equals behavior of objectids (#974)
3171  * fixed; honor the minimize schema option (#978)
3172  * fixed; provide helpful error msgs when reserved schema path is used (#928)
3173  * fixed; callback to conn#disconnect is optional (#875)
3174  * fixed; handle missing protocols in connection urls (#987)
3175  * fixed; validate args to query#where (#969)
3176  * fixed; saving modified/removed subdocs (#975)
3177  * fixed; update with $pull from Mixed array (#735)
3178  * fixed; error with null shard key value
3179  * fixed; allow unsetting enums (#967)
3180  * added; support for manual index creation (#984)
3181  * added; support for disabled auto-indexing (#984)
3182  * added; support for preserving MongooseArray#sort changes (#752)
3183  * added; emit state change events on connection
3184  * added; support for specifying BSON subtype in MongooseBuffer#toObject [jcrugzz]
3185  * added; support for disabled versioning (#977)
3186  * added; implicit "new" support for models and Schemas
3187
31883.0.0alpha1 / 2012-06-15
3189=========================
3190
3191  * removed; doc#commit (use doc#markModified)
3192  * removed; doc.modified getter (#950)
3193  * removed; mongoose{connectSet,createSetConnection}. use connect,createConnection instead
3194  * removed; query alias methods 1149804c
3195  * removed; MongooseNumber
3196  * changed; now creating indexes in background by default
3197  * changed; strict mode now enabled by default (#952)
3198  * changed; doc#modifiedPaths is now a method (#950)
3199  * changed; getters no longer cast (#820); casting happens during set
3200  * fixed; no need to pass updateArg to findOneAndUpdate (#931)
3201  * fixed: utils.merge bug when merging nested non-objects. [treygriffith]
3202  * fixed; strict:throw should produce errors in findAndModify (#963)
3203  * fixed; findAndUpdate no longer overwrites document (#962)
3204  * fixed; setting default DocumentArrays (#953)
3205  * fixed; selection of _id with schema deselection (#954)
3206  * fixed; ensure promise#error emits instanceof Error
3207  * fixed; CursorStream: No stack overflow on any size result (#929)
3208  * fixed; doc#remove now passes safe options
3209  * fixed; invalid use of $set during $pop
3210  * fixed; array#{$pop,$shift} mirror MongoDB behavior
3211  * fixed; no longer test non-required vals in string match (#934)
3212  * fixed; edge case with doc#inspect
3213  * fixed; setter order (#665)
3214  * fixed; setting invalid paths in strict mode (#916)
3215  * fixed; handle docs without id in DocumentArray#id method (#897)
3216  * fixed; do not save virtuals during model.update (#894)
3217  * fixed; sub doc toObject virtuals application (#889)
3218  * fixed; MongooseArray#pull of ObjectId (#881)
3219  * fixed; handle passing db name with any repl set string
3220  * fixed; default application of selected fields (#870)
3221  * fixed; subdoc paths reported in validation errors (#725)
3222  * fixed; incorrect reported num of affected docs in update ops (#862)
3223  * fixed; connection assignment in Model#model (#853)
3224  * fixed; stringifying arrays of docs (#852)
3225  * fixed; modifying subdoc and parent array works (#842)
3226  * fixed; passing undefined to next hook (#785)
3227  * fixed; Query#{update,remove}() works without callbacks (#788)
3228  * fixed; set/updating nested objects by parent pathname (#843)
3229  * fixed; allow null in number arrays (#840)
3230  * fixed; isNew on sub doc after insertion error (#837)
3231  * fixed; if an insert fails, set isNew back to false [boutell]
3232  * fixed; isSelected when only _id is selected (#730)
3233  * fixed; setting an unset default value (#742)
3234  * fixed; query#sort error messaging (#671)
3235  * fixed; support for passing $options with $regex
3236  * added; array of object literal notation in schema creates DocumentArrays
3237  * added; gt,gte,lt,lte query support for arrays (#902)
3238  * added; capped collection support (#938)
3239  * added; document versioning support
3240  * added; inclusion of deselected schema path (#786)
3241  * added; non-atomic array#pop
3242  * added; EmbeddedDocument constructor is now exposed in DocArray#create 7cf8beec
3243  * added; mapReduce support (#678)
3244  * added; support for a configurable minimize option #to{Object,JSON}(option) (#848)
3245  * added; support for strict: `throws` [regality]
3246  * added; support for named schema types (#795)
3247  * added; to{Object,JSON} schema options (#805)
3248  * added; findByIdAnd{Update,Remove}()
3249  * added; findOneAnd{Update,Remove}()
3250  * added; query.setOptions()
3251  * added; instance.update() (#794)
3252  * added; support specifying model in populate() [DanielBaulig]
3253  * added; `lean` query option [gitfy]
3254  * added; multi-atomic support to MongooseArray#nonAtomicPush
3255  * added; support for $set + other $atomic ops on single array
3256  * added; tests
3257  * updated; driver to 1.0.2
3258  * updated; query.sort() syntax to mirror query.select()
3259  * updated; clearer cast error msg for array numbers
3260  * updated; docs
3261  * updated; doc.clone 3x faster (#950)
3262  * updated; only create _id if necessary (#950)
3263
32642.7.3 / 2012-08-01
3265==================
3266
3267  * fixed; boolean $in queries (#998)
3268  * fixed field selection option on subdocs (#1022)
3269
32702.7.2 / 2012-07-18
3271==================
3272
3273  * fixed; callback to conn#disconnect is optional (#875)
3274  * fixed; handle missing protocols in connection urls (#987)
3275  * fixed; saving modified/removed subdocs (#975)
3276  * updated; tests
3277
32782.7.1 / 2012-06-26
3279===================
3280
3281  * fixed; sharding: when a document holds a null as a value of the shard key
3282  * fixed; update() using $pull on an array of Mixed (gh-735)
3283  * deprecated; MongooseNumber#{inc, increment, decrement} methods
3284  * tests; now using mocha
3285
32862.7.0 / 2012-06-14
3287===================
3288
3289  * added; deprecation warnings to methods being removed in 3.x
3290
32912.6.8 / 2012-06-14
3292===================
3293
3294  * fixed; edge case when using 'options' as a path name (#961)
3295
32962.6.7 / 2012-06-08
3297===================
3298
3299  * fixed; ensure promise#error always emits instanceof Error
3300  * fixed; selection of _id w/ another excluded path (#954)
3301  * fixed; setting default DocumentArrays (#953)
3302
33032.6.6 / 2012-06-06
3304===================
3305
3306  * fixed; stack overflow in query stream with large result sets (#929)
3307  * added; $gt, $gte, $lt, $lte support to arrays (#902)
3308  * fixed; pass option `safe` along to doc#remove() calls
3309
33102.6.5 / 2012-05-24
3311===================
3312
3313  * fixed; do not save virtuals in Model.update (#894)
3314  * added; missing $ prefixed query aliases (going away in 3.x) (#884) [timoxley]
3315  * fixed; setting invalid paths in strict mode (#916)
3316  * fixed; resetting isNew after insert failure (#837) [boutell]
3317
33182.6.4 / 2012-05-15
3319===================
3320
3321  * updated; backport string regex $options to 2.x
3322  * updated; use driver 1.0.2 (performance improvements) (#914)
3323  * fixed; calling MongooseDocumentArray#id when the doc has no _id (#897)
3324
33252.6.3 / 2012-05-03
3326===================
3327
3328  * fixed; repl-set connectivity issues during failover on MongoDB 2.0.1
3329  * updated; driver to 1.0.0
3330  * fixed; virtuals application of subdocs when using toObject({ virtuals: true }) (#889)
3331  * fixed; MongooseArray#pull of ObjectId correctly updates the array itself (#881)
3332
33332.6.2 / 2012-04-30
3334===================
3335
3336  * fixed; default field application of selected fields (#870)
3337
33382.6.1 / 2012-04-30
3339===================
3340
3341  * fixed; connection assignment in mongoose#model (#853, #877)
3342  * fixed; incorrect reported num of affected docs in update ops (#862)
3343
33442.6.0 / 2012-04-19
3345===================
3346
3347  * updated; hooks.js to 0.2.1
3348  * fixed; issue with passing undefined to a hook callback. thanks to [chrisleishman] for reporting.
3349  * fixed; updating/setting nested objects in strict schemas (#843) as reported by [kof]
3350  * fixed; Query#{update,remove}() work without callbacks again (#788)
3351  * fixed; modifying subdoc along with parent array $atomic op (#842)
3352
33532.5.14 / 2012-04-13
3354===================
3355
3356  * fixed; setting an unset default value (#742)
3357  * fixed; doc.isSelected(otherpath) when only _id is selected (#730)
3358  * updated; docs
3359
33602.5.13 / 2012-03-22
3361===================
3362
3363  * fixed; failing validation of unselected required paths (#730,#713)
3364  * fixed; emitting connection error when only one listener (#759)
3365  * fixed; MongooseArray#splice was not returning values (#784) [chrisleishman]
3366
33672.5.12 / 2012-03-21
3368===================
3369
3370  * fixed; honor the `safe` option in all ensureIndex calls
3371  * updated; node-mongodb-native driver to 0.9.9-7
3372
33732.5.11 / 2012-03-15
3374===================
3375
3376  * added; introspection for getters/setters (#745)
3377  * updated; node-mongodb-driver to 0.9.9-5
3378  * added; tailable method to Query (#769) [holic]
3379  * fixed; Number min/max validation of null (#764) [btamas]
3380  * added; more flexible user/password connection options (#738) [KarneAsada]
3381
33822.5.10 / 2012-03-06
3383===================
3384
3385  * updated; node-mongodb-native driver to 0.9.9-4
3386  * added; Query#comment()
3387  * fixed; allow unsetting arrays
3388  * fixed; hooking the set method of subdocuments (#746)
3389  * fixed; edge case in hooks
3390  * fixed; allow $id and $ref in queries (fixes compatibility with mongoose-dbref) (#749) [richtera]
3391  * added; default path selection to SchemaTypes
3392
33932.5.9 / 2012-02-22
3394===================
3395
3396  * fixed; properly cast nested atomic update operators for sub-documents
3397
33982.5.8 / 2012-02-21
3399===================
3400
3401  * added; post 'remove' middleware includes model that was removed (#729) [timoxley]
3402
34032.5.7 / 2012-02-09
3404===================
3405
3406  * fixed; RegExp validators on node >= v0.6.x
3407
34082.5.6 / 2012-02-09
3409===================
3410
3411  * fixed; emit errors returned from db.collection() on the connection (were being swallowed)
3412  * added; can add multiple validators in your schema at once (#718) [diogogmt]
3413  * fixed; strict embedded documents (#717)
3414  * updated; docs [niemyjski]
3415  * added; pass number of affected docs back in model.update/save
3416
34172.5.5 / 2012-02-03
3418===================
3419
3420  * fixed; RangeError: maximum call stack exceed error when removing docs with Number _id (#714)
3421
34222.5.4 / 2012-02-03
3423===================
3424
3425  * fixed; RangeError: maximum call stack exceed error (#714)
3426
34272.5.3 / 2012-02-02
3428===================
3429
3430  * added; doc#isSelected(path)
3431  * added; query#equals()
3432  * added; beta sharding support
3433  * added; more descript error msgs (#700) [obeleh]
3434  * added; document.modifiedPaths (#709) [ljharb]
3435  * fixed; only functions can be added as getters/setters (#707,704) [ljharb]
3436
34372.5.2 / 2012-01-30
3438===================
3439
3440  * fixed; rollback -native driver to 0.9.7-3-5 (was causing timeouts and other replica set weirdness)
3441  * deprecated; MongooseNumber (will be moved to a separate repo for 3.x)
3442  * added; init event is emitted on schemas
3443
34442.5.1 / 2012-01-27
3445===================
3446
3447  * fixed; honor strict schemas in Model.update (#699)
3448
34492.5.0 / 2012-01-26
3450===================
3451
3452  * added; doc.toJSON calls toJSON on embedded docs when exists [jerem]
3453  * added; populate support for refs of type Buffer (#686) [jerem]
3454  * added; $all support for ObjectIds and Dates (#690)
3455  * fixed; virtual setter calling on instantiation when strict: true (#682) [hunterloftis]
3456  * fixed; doc construction triggering getters (#685)
3457  * fixed; MongooseBuffer check in deepEquals (#688)
3458  * fixed; range error when using Number _ids with `instance.save()` (#691)
3459  * fixed; isNew on embedded docs edge case (#680)
3460  * updated; driver to 0.9.8-3
3461  * updated; expose `model()` method within static methods
3462
34632.4.10 / 2012-01-10
3464===================
3465
3466  * added; optional getter application in .toObject()/.toJSON() (#412)
3467  * fixed; nested $operators in $all queries (#670)
3468  * added; $nor support (#674)
3469  * fixed; bug when adding nested schema (#662) [paulwe]
3470
34712.4.9 / 2012-01-04
3472===================
3473
3474  * updated; driver to 0.9.7-3-5 to fix Linux performance degradation on some boxes
3475
34762.4.8 / 2011-12-22
3477===================
3478
3479  * updated; bump -native to 0.9.7.2-5
3480  * fixed; compatibility with date.js (#646) [chrisleishman]
3481  * changed; undocumented schema "lax" option to "strict"
3482  * fixed; default value population for strict schemas
3483  * updated; the nextTick helper for small performance gain. 1bee2a2
3484
34852.4.7 / 2011-12-16
3486===================
3487
3488  * fixed; bug in 2.4.6 with path setting
3489  * updated; bump -native to 0.9.7.2-1
3490  * added; strict schema option [nw]
3491
34922.4.6 / 2011-12-16
3493===================
3494
3495  * fixed; conflicting mods on update bug [sirlantis]
3496  * improved; doc.id getter performance
3497
34982.4.5 / 2011-12-14
3499===================
3500
3501  * fixed; bad MongooseArray behavior in 2.4.2 - 2.4.4
3502
35032.4.4 / 2011-12-14
3504===================
3505
3506  * fixed; MongooseArray#doAtomics throwing after sliced
3507
35082.4.3 / 2011-12-14
3509===================
3510
3511  * updated; system.profile schema for MongoDB 2x
3512
35132.4.2 / 2011-12-12
3514===================
3515
3516  * fixed; partially populating multiple children of subdocs (#639) [kenpratt]
3517  * fixed; allow Update of numbers to null (#640) [jerem]
3518
35192.4.1 / 2011-12-02
3520===================
3521
3522  * added; options support for populate() queries
3523  * updated; -native driver to 0.9.7-1.4
3524
35252.4.0 / 2011-11-29
3526===================
3527
3528  * added; QueryStreams (#614)
3529  * added; debug print mode for development
3530  * added; $within support to Array queries (#586) [ggoodale]
3531  * added; $centerSphere query support
3532  * fixed; $within support
3533  * added; $unset is now used when setting a path to undefined (#519)
3534  * added; query#batchSize support
3535  * updated; docs
3536  * updated; -native driver to 0.9.7-1.3 (provides Windows support)
3537
35382.3.13 / 2011-11-15
3539===================
3540
3541  * fixed; required validation for Refs (#612) [ded]
3542  * added; $nearSphere support for Arrays (#610)
3543
35442.3.12 / 2011-11-09
3545===================
3546
3547  * fixed; regression, objects passed to Model.update should not be changed (#605)
3548  * fixed; regression, empty Model.update should not be executed
3549
35502.3.11 / 2011-11-08
3551===================
3552
3553  * fixed; using $elemMatch on arrays of Mixed types (#591)
3554  * fixed; allow using $regex when querying Arrays (#599)
3555  * fixed; calling Model.update with no atomic keys (#602)
3556
35572.3.10 / 2011-11-05
3558===================
3559
3560  * fixed; model.update casting for nested paths works (#542)
3561
35622.3.9 / 2011-11-04
3563==================
3564
3565  * fixed; deepEquals check for MongooseArray returned false
3566  * fixed; reset modified flags of embedded docs after save [gitfy]
3567  * fixed; setting embedded doc with identical values no longer marks modified [gitfy]
3568  * updated; -native driver to 0.9.6.23 [mlazarov]
3569  * fixed; Model.update casting (#542, #545, #479)
3570  * fixed; populated refs no longer fail required validators (#577)
3571  * fixed; populating refs of objects with custom ids works
3572  * fixed; $pop & $unset work with Model.update (#574)
3573  * added; more helpful debugging message for Schema#add (#578)
3574  * fixed; accessing .id when no _id exists now returns null (#590)
3575
35762.3.8 / 2011-10-26
3577==================
3578
3579  * added; callback to query#findOne is now optional (#581)
3580
35812.3.7 / 2011-10-24
3582==================
3583
3584  * fixed; wrapped save/remove callbacks in nextTick to mitigate -native swallowing thrown errors
3585
35862.3.6 / 2011-10-21
3587==================
3588
3589  * fixed; exclusion of embedded doc _id from query results (#541)
3590
35912.3.5 / 2011-10-19
3592==================
3593
3594  * fixed; calling queries without passing a callback works (#569)
3595  * fixed; populate() works with String and Number _ids too (#568)
3596
35972.3.4 / 2011-10-18
3598==================
3599
3600  * added; Model.create now accepts an array as a first arg
3601  * fixed; calling toObject on a DocumentArray with nulls no longer throws
3602  * fixed; calling inspect on a DocumentArray with nulls no longer throws
3603  * added; MongooseArray#unshift support
3604  * fixed; save hooks now fire on embedded documents [gitfy] (#456)
3605  * updated; -native driver to 0.9.6-22
3606  * fixed; correctly pass $addToSet op instead of $push
3607  * fixed; $addToSet properly detects dates
3608  * fixed; $addToSet with multiple items works
3609  * updated; better node 0.6 Buffer support
3610
36112.3.3 / 2011-10-12
3612==================
3613
3614  * fixed; population conditions in multi-query settings [vedmalex] (#563)
3615  * fixed; now compatible with Node v0.5.x
3616
36172.3.2 / 2011-10-11
3618==================
3619
3620  * fixed; population of null subdoc properties no longer hangs (#561)
3621
36222.3.1 / 2011-10-10
3623==================
3624
3625  * added; support for Query filters to populate() [eneko]
3626  * fixed; querying with number no longer crashes mongodb (#555) [jlbyrey]
3627  * updated; version of -native driver to 0.9.6-21
3628  * fixed; prevent query callbacks that throw errors from corrupting -native connection state
3629
36302.3.0 / 2011-10-04
3631==================
3632
3633  * fixed; nulls as default values for Boolean now works as expected
3634  * updated; version of -native driver to 0.9.6-20
3635
36362.2.4 / 2011-10-03
3637==================
3638
3639  * fixed; populate() works when returned array contains undefined/nulls
3640
36412.2.3 / 2011-09-29
3642==================
3643
3644  * updated; version of -native driver to 0.9.6-19
3645
36462.2.2 / 2011-09-28
3647==================
3648
3649  * added; $regex support to String [davidandrewcope]
3650  * added; support for other contexts like repl etc (#535)
3651  * fixed; clear modified state properly after saving
3652  * added; $addToSet support to Array
3653
36542.2.1 / 2011-09-22
3655==================
3656
3657  * more descript error when casting undefined to string
3658  * updated; version of -native driver to 0.9.6-18
3659
36602.2.0 / 2011-09-22
3661==================
3662
3663  * fixed; maxListeners warning on schemas with many arrays (#530)
3664  * changed; return / apply defaults based on fields selected in query (#423)
3665  * fixed; correctly detect Mixed types within schema arrays (#532)
3666
36672.1.4 / 2011-09-20
3668==================
3669
3670  * fixed; new private methods that stomped on users code
3671  * changed; finished removing old "compat" support which did nothing
3672
36732.1.3 / 2011-09-16
3674==================
3675
3676  * updated; version of -native driver to 0.9.6-15
3677  * added; emit `error` on connection when open fails [edwardhotchkiss]
3678  * added; index support to Buffers (thanks justmoon for helping track this down)
3679  * fixed; passing collection name via schema in conn.model() now works (thanks vedmalex for reporting)
3680
36812.1.2 / 2011-09-07
3682==================
3683
3684  * fixed; Query#find with no args no longer throws
3685
36862.1.1 / 2011-09-07
3687==================
3688
3689  * added; support Model.count(fn)
3690  * fixed; compatibility with node >=0.4.0 < 0.4.3
3691  * added; pass model.options.safe through with .save() so w:2, wtimeout:5000 options work [andrewjstone]
3692  * added; support for $type queries
3693  * added; support for Query#or
3694  * added; more tests
3695  * optimized populate queries
3696
36972.1.0 / 2011-09-01
3698==================
3699
3700  * changed; document#validate is a public method
3701  * fixed; setting number to same value no longer marks modified (#476) [gitfy]
3702  * fixed; Buffers shouldn't have default vals
3703  * added; allow specifying collection name in schema (#470) [ixti]
3704  * fixed; reset modified paths and atomics after saved (#459)
3705  * fixed; set isNew on embedded docs to false after save
3706  * fixed; use self to ensure proper scope of options in doOpenSet (#483) [andrewjstone]
3707
37082.0.4 / 2011-08-29
3709==================
3710
3711  * Fixed; Only send the depopulated ObjectId instead of the entire doc on save (DBRefs)
3712  * Fixed; Properly cast nested array values in Model.update (the data was stored in Mongo incorrectly but recast on document fetch was "fixing" it)
3713
37142.0.3 / 2011-08-28
3715==================
3716
3717  * Fixed; manipulating a populated array no longer causes infinite loop in BSON serializer during save (#477)
3718  * Fixed; populating an empty array no longer hangs foreeeeeeeever (#481)
3719
37202.0.2 / 2011-08-25
3721==================
3722
3723  * Fixed; Maintain query option key order (fixes 'bad hint' error from compound query hints)
3724
37252.0.1 / 2011-08-25
3726==================
3727
3728  * Fixed; do not over-write the doc when no valide props exist in Model.update (#473)
3729
37302.0.0 / 2011-08-24
3731===================
3732
3733  * Added; support for Buffers [justmoon]
3734  * Changed; improved error handling [maelstrom]
3735  * Removed: unused utils.erase
3736  * Fixed; support for passing other context object into Schemas (#234) [Sija]
3737  * Fixed; getters are no longer circular refs to themselves (#366)
3738  * Removed; unused compat.js
3739  * Fixed; getter/setter scopes are set properly
3740  * Changed; made several private properties more obvious by prefixing _
3741  * Added; DBRef support [guille]
3742  * Changed; removed support for multiple collection names per model
3743  * Fixed; no longer applying setters when document returned from db
3744  * Changed; default auto_reconnect to true
3745  * Changed; Query#bind no longer clones the query
3746  * Fixed; Model.update now accepts $pull, $inc and friends (#404)
3747  * Added; virtual type option support [nw]
3748
37491.8.4 / 2011-08-21
3750===================
3751
3752  * Fixed; validation bug when instantiated with non-schema properties (#464) [jmreidy]
3753
37541.8.3 / 2011-08-19
3755===================
3756
3757  * Fixed; regression in connection#open [jshaw86]
3758
37591.8.2 / 2011-08-17
3760===================
3761
3762  * fixed; reset connection.readyState after failure [tomseago]
3763  * fixed; can now query positionally for non-embedded docs (arrays of numbers/strings etc)
3764  * fixed; embedded document query casting
3765  * added; support for passing options to node-mongo-native db, server, and replsetserver [tomseago]
3766
37671.8.1 / 2011-08-10
3768===================
3769
3770  * fixed; ObjectIds were always marked modified
3771  * fixed; can now query using document instances
3772  * fixed; can now query/update using documents with subdocs
3773
37741.8.0 / 2011-08-04
3775===================
3776
3777  * fixed; can now use $all with String and Number
3778  * fixed; can query subdoc array with $ne: null
3779  * fixed; instance.subdocs#id now works with custom _ids
3780  * fixed; do not apply setters when doc returned from db (change in bad behavior)
3781
37821.7.4 / 2011-07-25
3783===================
3784
3785  * fixed; sparse now a valid seperate schema option
3786  * fixed; now catching cast errors in queries
3787  * fixed; calling new Schema with object created in vm.runInNewContext now works (#384) [Sija]
3788  * fixed; String enum was disallowing null
3789  * fixed; Find by nested document _id now works (#389)
3790
37911.7.3 / 2011-07-16
3792===================
3793
3794  * fixed; MongooseArray#indexOf now works with ObjectIds
3795  * fixed; validation scope now set properly (#418)
3796  * fixed; added missing colors dependency (#398)
3797
37981.7.2 / 2011-07-13
3799===================
3800
3801  * changed; node-mongodb-native driver to v0.9.6.7
3802
38031.7.1 / 2011-07-12
3804===================
3805
3806  * changed; roll back node-mongodb-native driver to v0.9.6.4
3807
38081.7.0 / 2011-07-12
3809===================
3810
3811  * fixed; collection name misspelling [mathrawka]
3812  * fixed; 2nd param is required for ReplSetServers [kevinmarvin]
3813  * fixed; MongooseArray behaves properly with Object.keys
3814  * changed; node-mongodb-native driver to v0.9.6.6
3815  * fixed/changed; Mongodb segfault when passed invalid ObjectId (#407)
3816      - This means invalid data passed to the ObjectId constructor will now error
3817
38181.6.0 / 2011-07-07
3819===================
3820
3821  * changed; .save() errors are now emitted on the instances db instead of the instance 9782463fc
3822  * fixed; errors occurring when creating indexes now properly emit on db
3823  * added; $maxDistance support to MongooseArrays
3824  * fixed; RegExps now work with $all
3825  * changed; node-mongodb-native driver to v0.9.6.4
3826  * fixed; model names are now accessible via .modelName
3827  * added; Query#slaveOk support
3828
38291.5.0 / 2011-06-27
3830===================
3831
3832  * changed; saving without a callback no longer ignores the error (@bnoguchi)
3833  * changed; hook-js version bump to 0.1.9
3834  * changed; node-mongodb-native version bumped to 0.9.6.1 - When .remove() doesn't
3835             return an error, null is no longer passed.
3836  * fixed; two memory leaks (@justmoon)
3837  * added; sparse index support
3838  * added; more ObjectId conditionals (gt, lt, gte, lte) (@phillyqueso)
3839  * added; options are now passed in model#remote (@JerryLuke)
3840
38411.4.0 / 2011-06-10
3842===================
3843
3844  * bumped hooks-js dependency (fixes issue passing null as first arg to next())
3845  * fixed; document#inspect now works properly with nested docs
3846  * fixed; 'set' now works as a schema attribute (GH-365)
3847  * fixed; _id is now set properly within pre-init hooks (GH-289)
3848  * added; Query#distinct / Model#distinct support (GH-155)
3849  * fixed; embedded docs now can use instance methods (GH-249)
3850  * fixed; can now overwrite strings conflicting with schema type
3851
38521.3.7 / 2011-06-03
3853===================
3854
3855  * added MongooseArray#splice support
3856  * fixed; 'path' is now a valid Schema pathname
3857  * improved hooks (utilizing https://github.com/bnoguchi/hooks-js)
3858  * fixed; MongooseArray#$shift now works (never did)
3859  * fixed; Document.modified no longer throws
3860  * fixed; modifying subdoc property sets modified paths for subdoc and parent doc
3861  * fixed; marking subdoc path as modified properly persists the value to the db
3862  * fixed; RexExps can again be saved ( #357 )
3863
38641.3.6 / 2011-05-18
3865===================
3866
3867  * fixed; corrected casting for queries against array types
3868  * added; Document#set now accepts Document instances
3869
38701.3.5 / 2011-05-17
3871===================
3872
3873  * fixed; $ne queries work properly with single vals
3874  * added; #inspect() methods to improve console.log output
3875
38761.3.4 / 2011-05-17
3877===================
3878
3879  * fixed; find by Date works as expected (#336)
3880  * added; geospatial 2d index support
3881  * added; support for $near (#309)
3882  * updated; node-mongodb-native driver
3883  * fixed; updating numbers work (#342)
3884  * added; better error msg when try to remove an embedded doc without an _id (#307)
3885  * added; support for 'on-the-fly' schemas (#227)
3886  * changed; virtual id getters can now be skipped
3887  * fixed; .index() called on subdoc schema now works as expected
3888  * fixed; db.setProfile() now buffers until the db is open (#340)
3889
38901.3.3 / 2011-04-27
3891===================
3892
3893  * fixed; corrected query casting on nested mixed types
3894
38951.3.2 / 2011-04-27
3896===================
3897
3898  * fixed; query hints now retain key order
3899
39001.3.1 / 2011-04-27
3901===================
3902
3903  * fixed; setting a property on an embedded array no longer overwrites entire array (GH-310)
3904  * fixed; setting nested properties works when sibling prop is named "type"
3905  * fixed; isModified is now much finer grained when .set() is used (GH-323)
3906  * fixed; mongoose.model() and connection.model() now return the Model (GH-308, GH-305)
3907  * fixed; can now use $gt, $lt, $gte, $lte with String schema types (GH-317)
3908  * fixed; .lowercase() -> .toLowerCase() in pluralize()
3909  * fixed; updating an embedded document by index works (GH-334)
3910  * changed; .save() now passes the instance to the callback (GH-294, GH-264)
3911  * added; can now query system.profile and system.indexes collections
3912  * added; db.model('system.profile') is now included as a default Schema
3913  * added; db.setProfiling(level, ms, callback)
3914  * added; Query#hint() support
3915  * added; more tests
3916  * updated node-mongodb-native to 0.9.3
3917
39181.3.0 / 2011-04-19
3919===================
3920
3921  * changed; save() callbacks now fire only once on failed validation
3922  * changed; Errors returned from save() callbacks now instances of ValidationError
3923  * fixed; MongooseArray#indexOf now works properly
3924
39251.2.0 / 2011-04-11
3926===================
3927
3928  * changed; MongooseNumber now casts empty string to null
3929
39301.1.25 / 2011-04-08
3931===================
3932
3933  * fixed; post init now fires at proper time
3934
39351.1.24 / 2011-04-03
3936===================
3937
3938  * fixed; pushing an array onto an Array works on existing docs
3939
39401.1.23 / 2011-04-01
3941===================
3942
3943  * Added Model#model
3944
39451.1.22 / 2011-03-31
3946===================
3947
3948  * Fixed; $in queries on mixed types now work
3949
39501.1.21 / 2011-03-31
3951===================
3952
3953  * Fixed; setting object root to null/undefined works
3954
39551.1.20 / 2011-03-31
3956===================
3957
3958  * Fixed; setting multiple props on null field works
3959
39601.1.19 / 2011-03-31
3961===================
3962
3963  * Fixed; no longer using $set on paths to an unexisting fields
3964
39651.1.18 / 2011-03-30
3966===================
3967
3968  * Fixed; non-mixed type object setters work after initd from null
3969
39701.1.17 / 2011-03-30
3971===================
3972
3973  * Fixed; nested object property access works when root initd with null value
3974
39751.1.16 / 2011-03-28
3976===================
3977
3978  * Fixed; empty arrays are now saved
3979
39801.1.15 / 2011-03-28
3981===================
3982
3983  * Fixed; `null` and `undefined` are set atomically.
3984
39851.1.14 / 2011-03-28
3986===================
3987
3988  * Changed; more forgiving date casting, accepting '' as null.
3989
39901.1.13 / 2011-03-26
3991===================
3992
3993  * Fixed setting values as `undefined`.
3994
39951.1.12 / 2011-03-26
3996===================
3997
3998  * Fixed; nested objects now convert to JSON properly
3999  * Fixed; setting nested objects directly now works
4000  * Update node-mongodb-native
4001
40021.1.11 / 2011-03-25
4003===================
4004
4005  * Fixed for use of `type` as a key.
4006
40071.1.10 / 2011-03-23
4008===================
4009
4010  * Changed; Make sure to only ensure indexes while connected
4011
40121.1.9 / 2011-03-2
4013==================
4014
4015  * Fixed; Mixed can now default to empty arrays
4016  * Fixed; keys by the name 'type' are now valid
4017  * Fixed; null values retrieved from the database are hydrated as null values.
4018  * Fixed repeated atomic operations when saving a same document twice.
4019
40201.1.8 / 2011-03-23
4021==================
4022
4023  * Fixed 'id' overriding. [bnoguchi]
4024
40251.1.7 / 2011-03-22
4026==================
4027
4028  * Fixed RegExp query casting when querying against an Array of Strings [bnoguchi]
4029  * Fixed getters/setters for nested virtualsl. [bnoguchi]
4030
40311.1.6 / 2011-03-22
4032==================
4033
4034  * Only doValidate when path exists in Schema [aheckmann]
4035  * Allow function defaults for Array types [aheckmann]
4036  * Fix validation hang [aheckmann]
4037  * Fix setting of isRequired of SchemaType [aheckmann]
4038  * Fix SchemaType#required(false) filter [aheckmann]
4039  * More backwards compatibility [aheckmann]
4040  * More tests [aheckmann]
4041
40421.1.5 / 2011-03-14
4043==================
4044
4045  * Added support for `uri, db, fn` and `uri, fn` signatures for replica sets.
4046  * Improved/extended replica set tests.
4047
40481.1.4 / 2011-03-09
4049==================
4050
4051  * Fixed; running an empty Query doesn't throw. [aheckmann]
4052  * Changed; Promise#addBack returns promise. [aheckmann]
4053  * Added streaming cursor support. [aheckmann]
4054  * Changed; Query#update defaults to use$SetOnSave now. [brian]
4055  * Added more docs.
4056
40571.1.3 / 2011-03-04
4058==================
4059
4060  * Added Promise#resolve [aheckmann]
4061  * Fixed backward compatibility with nulls [aheckmann]
4062  * Changed; Query#{run,exec} return promises [aheckmann]
4063
40641.1.2 / 2011-03-03
4065==================
4066
4067  * Restored Query#exec and added notion of default operation [brian]
4068  * Fixed ValidatorError messages [brian]
4069
40701.1.1 / 2011-03-01
4071==================
4072
4073  * Added SchemaType String `lowercase`, `uppercase`, `trim`.
4074  * Public exports (`Model`, `Document`) and tests.
4075  * Added ObjectId casting support for `Document`s.
4076
40771.1.0 / 2011-02-25
4078==================
4079
4080  * Added support for replica sets.
4081
40821.0.16 / 2011-02-18
4083===================
4084
4085  * Added $nin as another whitelisted $conditional for SchemaArray [brian]
4086  * Changed #with to #where [brian]
4087  * Added ability to use $in conditional with Array types [brian]
4088
40891.0.15 / 2011-02-18
4090===================
4091
4092  * Added `id` virtual getter for documents to easily access the hexString of
4093  the `_id`.
4094
40951.0.14 / 2011-02-17
4096===================
4097
4098  * Fix for arrays within subdocuments [brian]
4099
41001.0.13 / 2011-02-16
4101===================
4102
4103  * Fixed embedded documents saving.
4104
41051.0.12 / 2011-02-14
4106===================
4107
4108  * Minor refactorings [brian]
4109
41101.0.11 / 2011-02-14
4111===================
4112
4113  * Query refactor and $ne, $slice, $or, $size, $elemMatch, $nin, $exists support [brian]
4114  * Named scopes sugar [brian]
4115
41161.0.10 / 2011-02-11
4117===================
4118
4119  * Updated node-mongodb-native driver [thanks John Allen]
4120
41211.0.9 / 2011-02-09
4122==================
4123
4124  * Fixed single member arrays as defaults [brian]
4125
41261.0.8 / 2011-02-09
4127==================
4128
4129  * Fixed for collection-level buffering of commands [gitfy]
4130  * Fixed `Document#toJSON` [dalejefferson]
4131  * Fixed `Connection` authentication [robrighter]
4132  * Fixed clash of accessors in getters/setters [eirikurn]
4133  * Improved `Model#save` promise handling
4134
41351.0.7 / 2011-02-05
4136==================
4137
4138  * Fixed memory leak warnings for test suite on 0.3
4139  * Fixed querying documents that have an array that contain at least one
4140  specified member. [brian]
4141  * Fixed default value for Array types (fixes GH-210). [brian]
4142  * Fixed example code.
4143
41441.0.6 / 2011-02-03
4145==================
4146
4147  * Fixed `post` middleware
4148  * Fixed; it's now possible to instantiate a model even when one of the paths maps
4149  to an undefined value [brian]
4150
41511.0.5 / 2011-02-02
4152==================
4153
4154  * Fixed; combo $push and $pushAll auto-converts into a $pushAll [brian]
4155  * Fixed; combo $pull and $pullAll auto-converts to a single $pullAll [brian]
4156  * Fixed; $pullAll now removes said members from array before save (so it acts just
4157  like pushAll) [brian]
4158  * Fixed; multiple $pulls and $pushes become a single $pullAll and $pushAll.
4159  Moreover, $pull now modifies the array before save to reflect the immediate
4160  change [brian]
4161  * Added tests for nested shortcut getters [brian]
4162  * Added tests that show that Schemas with nested Arrays don't apply defaults
4163  [brian]
4164
41651.0.4 / 2011-02-02
4166==================
4167
4168  * Added MongooseNumber#toString
4169  * Added MongooseNumber unit tests
4170
41711.0.3 / 2011-02-02
4172==================
4173
4174  * Make sure safe mode works with Model#save
4175  * Changed Schema options: safe mode is now the default
4176  * Updated node-mongodb-native to HEAD
4177
41781.0.2 / 2011-02-02
4179==================
4180
4181  * Added a Model.create shortcut for creating documents. [brian]
4182  * Fixed; we can now instantiate models with hashes that map to at least one
4183  null value. [brian]
4184  * Fixed Schema with more than 2 nested levels. [brian]
4185
41861.0.1 / 2011-02-02
4187==================
4188
4189  * Improved `MongooseNumber`, works almost like the native except for `typeof`
4190  not being `'number'`.