arnaucube
arnaucube/thoughtsPublic Self-hosted repository
thoughts/node_modules/mongoose/History.md
node_modules/mongoose/History.mdRaw
   14.5.9 / 2016-08-14
   2==================
   3 * docs: add mixed schema doc for Object literal #4400 [Kikobeats](https://github.com/Kikobeats)
   4 * fix(query): cast $geoWithin and convert mongoose objects to POJOs before casting #4392
   5 * fix(schematype): dont cast defaults without parent doc #4390
   6 * fix(query): disallow passing empty string to findOne() #4378
   7 * fix(document): set single nested doc isNew correctly #4369
   8 * fix(types): checks field name correctly with nested arrays and populate #4365
   9 * fix(drivers): make debug output copy-pastable into mongodb shell #4352
  10 * fix(services): run update validators on nested paths #4332
  11 * fix(model): handle typeKey with discriminators #4339
  12 * fix(query): apply timestamps to child schemas when explicitly specified in update #4049
  13 * fix(schema): set prefix as nested path with add() #1730
  14
  154.5.8 / 2016-08-01
  16==================
  17 * fix(model): make changing the discriminator key cause a cast error #4374
  18 * fix(query): pass projection fields to cursor #4371 #4342 [Corei13](https://github.com/Corei13)
  19 * fix(document): support multiple paths for isModified #4370 [adambuczynski](https://github.com/adambuczynski)
  20 * fix(querycursor): always cast fields before returning cursor #4355
  21 * fix(query): support projection as alias for fields in findOneAndUpdate #4315
  22 * fix(schema): treat index false + unique false as no index #4304
  23 * fix(types): dont mark single nested subpath as modified if whole doc already modified #4224
  24
  254.5.7 / 2016-07-25
  26==================
  27 * fix(document): ensure no unhandled rejections if callback specified for save #4364
  28
  294.5.6 / 2016-07-23
  30==================
  31 * fix(schema): don't overwrite createdAt if it isn't selected #4351 [tusbar](https://github.com/tusbar)
  32 * docs(api): fix link to populate() and add a new one from depopulate() #4345 [Delapouite](https://github.com/Delapouite)
  33 * fix(types): ownerDocument() works properly with single nested docs #4344 [vichle](https://github.com/vichle)
  34 * fix(populate): dont use findOne when justOne option set #4329
  35 * fix(document): dont trigger .then() deprecated warning when calling doc.remove() #4291
  36 * docs(connection): add promiseLibrary option #4280
  37 * fix(plugins): apply global plugins to subschemas #4271
  38 * fix(model): ensure `ensureIndex()` never calls back in the same tick #4246
  39 * docs(schema): improve post hook docs on schema #4238
  40
  414.5.5 / 2016-07-18
  42==================
  43 * fix(document): handle setting root to empty obj if minimize false #4337
  44 * fix: downgrade to mongodb 2.1.18 #4335 #4334 #4328 #4323
  45 * perf(types): remove defineProperty usage in documentarray #4333
  46 * fix(query): correctly pass model in .toConstructor() #4318
  47 * fix(services): avoid double-validating mixed types with update validators #4305
  48 * docs(middleware): add docs describing error handling middleware #4229
  49 * fix(types): throw correct error when invalidating doc array #3602
  50
  514.5.4 / 2016-07-11
  52==================
  53 * fix(types): fix removing embedded documents #4309 [RoCat](https://github.com/RoCat)
  54 * docs: various docs improvements #4302 #4294 [simonxca](https://github.com/simonxca)
  55 * fix: upgrade mongodb -> 2.1.21 #4295 #4202 [RoCat](https://github.com/RoCat)
  56 * fix(populate): convert single result to array for virtual populate because of lean #4288
  57 * fix(populate): handle empty results for populate virtuals properly #4285 #4284
  58 * fix(query): dont cast $inc to number if type is long #4283
  59 * fix(types): allow setting single nested doc to null #4281
  60 * fix(populate): handle deeply nested virtual populate #4278
  61 * fix(document): allow setting empty obj if strict mode is false #4274
  62 * fix(aggregate): allow passing obj to .unwind() #4239
  63 * docs(document): add return statements to transform examples #1963
  64
  654.5.3 / 2016-06-30
  66==================
  67 * fix(query): pass correct options to QueryCursor #4277 #4266
  68 * fix(querycursor): handle lean option correctly #4276 [gchudnov](https://github.com/gchudnov)
  69 * fix(document): fix error handling when no error occurred #4275
  70 * fix(error): use strict mode for version error #4272
  71 * docs(populate): fix crashing compilation for populate.jade #4267
  72 * fix(populate): support `justOne` option for populate virtuals #4263
  73 * fix(populate): ensure model param gets used for populate virtuals #4261 #4243
  74 * fix(querycursor): add ability to properly close the cursor #4258
  75 * docs(model): correct link to Document #4250
  76 * docs(populate): correct path for refPath populate #4240
  77 * fix(document): support validator.isEmail as validator #4064
  78
  794.5.2 / 2016-06-24
  80==================
  81 * fix(connection): add checks for collection presence for `onOpen` and `onClose` #4259 [nodkz](https://github.com/nodkz)
  82 * fix(cast): allow strings for $type operator #4256
  83 * fix(querycursor): support lean() #4255 [pyramation](https://github.com/pyramation)
  84 * fix(aggregate): allow setting noCursorTimeout option #4241
  85 * fix(document): handle undefined for Array.pull #4222 [Sebmaster](https://github.com/Sebmaster)
  86 * fix(connection): ensure promise.catch() catches initial connection error #4135
  87 * fix(document): show additional context for VersionError #2633
  88
  894.5.1 / 2016-06-18
  90==================
  91 * fix(model): ensure wrapped insertMany() returns a promise #4237
  92 * fix(populate): dont overwrite populateVirtuals when populating multiple paths #4234
  93 * docs(model): clarify relationship between create() and save() #4233
  94 * fix(types): handle option param in subdoc remove() #4231 [tdebarochez](https://github.com/tdebarochez)
  95 * fix(document): dedupe modified paths #4226 #4223 [adambuczynski](https://github.com/adambuczynski)
  96 * fix(model): don't modify user-provided options object #4221
  97 * fix(document): handle setting nested path to empty object #4218 #4182
  98 * fix(document): clean subpaths when removing single nested #4216
  99 * fix(document): don't force transform on subdocs with inspect #4213
 100 * fix(error): allow setting .messages object #4207
 101
 1024.5.0 / 2016-06-13
 103==================
 104 * feat(query): added Query.prototype.catch() #4215 #4173 [adambuczynski](https://github.com/adambuczynski)
 105 * feat(query): add Query.prototype.cursor() as a .stream() alternative #4117 #3637 #1907
 106 * feat(document): add markUnmodified() function #4092 [vincentcr](https://github.com/vincentcr)
 107 * feat(aggregate): convert aggregate object to a thenable #3995 #3946 [megagon](https://github.com/megagon)
 108 * 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
 109 * feat(model): add hooks for insertMany() #3846
 110 * feat(schema): add support for custom query methods #3740 #2372
 111 * feat(drivers): emit error on 'serverClosed' because that means that reconnect failed #3615
 112 * feat(model): emit error event when callback throws exception #3499
 113 * feat(model): inherit options from discriminator base schema #3414 #1818
 114 * feat(populate): expose mongoose-populate-virtuals inspired populate API #2562
 115 * feat(document): trigger remove hooks on subdocs when removing parent #2348
 116 * feat(schema): add support for express-style error handling middleware #2284
 117 * fix(model): disallow setting discriminator key #2041
 118 * feat(schema): add support for nested arrays #1361
 119
 1204.4.20 / 2016-06-05
 121===================
 122 * docs: clarify command buffering when using driver directly #4195
 123 * fix(promise): correct broken mpromise .catch() #4189
 124 * fix(document): clean modified subpaths when set path to empty obj #4182
 125 * fix(query): support minDistance with query casting and `.near()` #4179
 126 * fix(model): remove unnecessary .save() promise #4177
 127 * fix(schema): cast all valid ObjectId strings to object ids #3365
 128 * docs: remove unclear "unsafe" term in query docs #3282
 129
 1304.4.19 / 2016-05-21
 131===================
 132 * fix(model): handle insertMany if timestamps not set #4171
 133
 1344.4.18 / 2016-05-21
 135===================
 136 * docs: add missing period #4170 [gitname](https://github.com/gitname)
 137 * docs: change build badge to svg #4158 [a0viedo](https://github.com/a0viedo)
 138 * fix(model): update timestamps when setting `createdAt` #4155
 139 * fix(utils): make sure to require in document properly #4152
 140 * fix(model): throw overwrite error when discriminator name conflicts #4148
 141
 1424.4.17 / 2016-05-13
 143===================
 144 * docs: remove repetition in QueryStream docs #4147 [hugoabonizio](https://github.com/hugoabonizio)
 145 * fix(document): dont double-validate doc array elements #4145
 146 * fix(document): call required function with correct scope #4142 [JedWatson](https://github.com/JedWatson)
 147
 1484.4.16 / 2016-05-09
 149===================
 150 * refactor(document): use function reference #4133 [dciccale](https://github.com/dciccale)
 151 * docs(querystream): clarify `destroy()` and close event #4126 [AnthonyCC](https://github.com/AnthonyCC)
 152 * test: make before hook fail fast if it can't connect #4121
 153 * docs: add description of CastError constructor params #4120
 154 * fix(schematype): ensure single embedded defaults have $parent #4115
 155 * fix(document): mark nested paths for validation #4111
 156 * fix(schema): make sure element is always a subdoc in doc array validation #3816
 157
 1584.4.15 / 2016-05-06
 159===================
 160 * fix(schema): support overwriting array default #4109
 161 * fix(populate): assign values when resolving each populate #4104
 162 * fix(aggregate): dont send async option to server #4101
 163 * fix(model): ensure isNew set to false after insertMany #4099
 164 * fix(connection): emit on error if listeners and no callback #4098
 165 * fix(document): treat required fn that returns false as required: false #4094
 166
 1674.4.14 / 2016-04-27
 168===================
 169 * fix: upgrade mongodb -> 2.1.18 #4102
 170 * feat(connection): allow setting mongos as a uri query param #4093 #4035 [burtonjc](https://github.com/burtonjc)
 171 * fix(populate): make sure to use correct assignment order for each model #4073
 172 * fix(schema): add complete set of geospatial operators for single embedded subdocs #4014
 173
 1743.8.40 / 2016-04-24
 175===================
 176 * upgraded; mquery -> 1.10.0 #3989
 177
 1784.4.13 / 2016-04-21
 179===================
 180 * docs: add docs favicons #4082 [robertjustjones](https://github.com/robertjustjones)
 181 * docs(model): correct Model.remove() return value #4075 [Jokero](https://github.com/Jokero)
 182 * fix(query): add $geoWithin query casting for single embedded docs #4044
 183 * fix(schema): handle setting trim option to falsy #4042
 184 * fix(query): handle setDefaultsOnInsert with empty update #3835
 185
 1864.4.12 / 2016-04-08
 187===================
 188 * docs(query): document context option for update and findOneAndUpdate #4055
 189 * docs(query): correct link to $geoWithin docs #4050
 190 * fix(project): upgrade to mongodb driver 2.1.16 #4048 [schmalliso](https://github.com/schmalliso)
 191 * docs(validation): fix validation docs #4028
 192 * fix(types): improve .id() check for document arrays #4011
 193 * fix(query): remove premature return when using $rename #3171
 194 * docs(connection): clarify relationship between models and connections #2157
 195
 1964.4.11 / 2016-04-03
 197===================
 198 * fix: upgrade to mongodb driver 2.1.14 #4036 #4030 #3945
 199 * fix(connection): allow connecting with { mongos: true } to handle query params #4032 [burtonjc](https://github.com/burtonjc)
 200 * docs(connection): add autoIndex example #4026 [tilleps](https://github.com/tilleps)
 201 * fix(query): handle passRawResult option when zero results #4023
 202 * fix(populate): clone options before modifying #4022
 203 * docs: add missing whitespace #4019 [chenxsan](https://github.com/chenxsan)
 204 * chore: upgrade to ESLint 2.4.0 #4015 [ChristianMurphy](https://github.com/ChristianMurphy)
 205 * fix(types): single nested subdocs get ids by default #4008
 206 * chore(project): add dependency status badge #4007 [Maheshkumar-Kakade](http://github.com/Maheshkumar-Kakade)
 207 * fix: make sure timestamps don't trigger unnecessary updates #4005 #3991 [tommarien](https://github.com/tommarien)
 208 * fix(document): inspect inherits schema options #4001
 209 * fix(populate): don't mark populated path as modified if setting to object w/ same id #3992
 210 * fix(document): support kind argument to invalidate #3965
 211
 2124.4.10 / 2016-03-24
 213===================
 214 * fix(document): copy isNew when copying a document #3982
 215 * fix(document): don't override defaults with undefined keys #3981
 216 * fix(populate): merge multiple deep populate options for the same path #3974
 217
 2184.4.9 / 2016-03-22
 219==================
 220 * fix: upgrade mongodb -> 2.1.10 re https://jira.mongodb.org/browse/NODE-679 #4010
 221 * docs: add syntax highlighting for acquit examples #3975
 222
 2234.4.8 / 2016-03-18
 224==================
 225 * docs(aggregate): clarify promises #3990 [megagon](https://github.com/megagon)
 226 * fix: upgrade mquery -> 1.10 #3988 [matskiv](https://github.com/matskiv)
 227 * feat(connection): 'all' event for repl sets #3986 [xizhibei](https://github.com/xizhibei)
 228 * docs(types): clarify Array.pull #3985 [seriousManual](https://github.com/seriousManual)
 229 * feat(query): support array syntax for .sort() via mquery 1.9 #3980
 230 * fix(populate): support > 3 level nested populate #3973
 231 * fix: MongooseThenable exposes connection correctly #3972
 232 * docs(connection): add note about reconnectTries and reconnectInterval #3969
 233 * feat(document): invalidate returns the new validationError #3964
 234 * fix(query): .eq() as shorthand for .equals #3953 [Fonger](https://github.com/Fonger)
 235 * docs(connection): clarify connection string vs passed options #3941
 236 * docs(query): select option for findOneAndUpdate #3933
 237 * fix(error): ValidationError.properties no longer enumerable #3925
 238 * docs(validation): clarify how required validators work with nested schemas #3915
 239 * fix: upgrade mongodb driver -> 2.1.8 to make partial index errors more sane #3864
 240
 2414.4.7 / 2016-03-11
 242==================
 243 * fix(query): stop infinite recursion caused by merging a mongoose buffer #3961
 244 * fix(populate): handle deep populate array -> array #3954
 245 * fix(schema): allow setting timestamps with .set() #3952 #3951 #3907 [Fonger](https://github.com/Fonger)
 246 * fix: MongooseThenable doesn't overwrite constructors #3940
 247 * fix(schema): don't cast boolean to date #3935
 248 * fix(drivers): support sslValidate in connection string #3929
 249 * fix(types): correct markModified() for single nested subdocs #3910
 250 * fix(drivers): catch and report any errors that occur in driver methods #3906
 251 * fix(populate): get subpopulate model correctly when array under nested #3904
 252 * fix(document): allow fields named 'pre' and 'post' #3902
 253 * docs(query): clarify runValidators and setDefaultsOnInsert options #3892
 254 * docs(validation): show how to use custom required messages in schema #2616
 255
 2564.4.6 / 2016-03-02
 257==================
 258 * fix: upgrade mongodb driver to 2.1.7 #3938
 259 * docs: fix plugins link #3917 #3909 [fbertone](https://github.com/fbertone)
 260 * fix(query): sort+select with count works #3914
 261 * fix(query): improve mergeUpdate's ability to handle nested docs #3890
 262
 2634.4.5 / 2016-02-24
 264==================
 265 * fix(query): ability to select a length field (upgrade to mquery 1.7.0) #3903
 266 * fix: include nested CastError as reason for array CastError #3897 [kotarou3](https://github.com/kotarou3)
 267 * fix(schema): check for doc existence before taking fields #3889
 268 * feat(schema): useNestedStrict option to take nested strict mode for update #3883
 269 * docs(validation): clarify relationship between required and checkRequired #3822
 270 * docs(populate): dynamic reference docs #3809
 271 * docs: expand dropdown when clicking on file name #3807
 272 * docs: plugins.mongoosejs.io is up #3127
 273 * fix(schema): ability to add a virtual with same name as removed path #2398
 274
 2754.4.4 / 2016-02-17
 276==================
 277 * fix(schema): handle field selection when casting single nested subdocs #3880
 278 * fix(populate): populating using base model with multiple child models in result #3878
 279 * fix: ability to properly use return value of `mongoose.connect()` #3874
 280 * fix(populate): dont hydrate populated subdoc if lean option set #3873
 281 * fix(connection): dont re-auth if already connected with useDb #3871
 282 * docs: cover how to set underlying driver's promise lib #3869
 283 * fix(document): handle conflicting names in validation errors with subdocs #3867
 284 * fix(populate): set undefined instead of null consistently when populate couldn't find results #3859
 285 * docs: link to `execPopulate()` in `doc.populate()` docs #3836
 286 * docs(plugin): link to the `mongoose.plugin()` function #3732
 287
 2884.4.3 / 2016-02-09
 289==================
 290 * fix: upgrade to mongodb 2.1.6 to remove kerberos log output #3861 #3860 [cartuchogl](https://github.com/cartuchogl)
 291 * fix: require('mongoose') is no longer a pseudo-promise #3856
 292 * fix(query): update casting for single nested docs #3820
 293 * fix(populate): deep populating multiple paths with same options #3808
 294 * docs(middleware): clarify save/validate hook order #1149
 295
 2964.4.2 / 2016-02-05
 297==================
 298 * fix(aggregate): handle calling .cursor() with no options #3855
 299 * fix: upgrade mongodb driver to 2.1.5 for GridFS memory leak fix #3854
 300 * docs: fix schematype.html conflict #3853 #3850 #3843
 301 * fix(model): bluebird unhandled rejection with ensureIndexes() on init #3837
 302 * docs: autoIndex option for createConnection #3805
 303
 3044.4.1 / 2016-02-03
 305==================
 306 * fix: linting broke some cases where we use `== null` as shorthand #3852
 307 * docs: fix up schematype.html conflict #3848 #3843 [mynameiscoffey](https://github.com/mynameiscoffey)
 308 * fix: backwards breaking change with `.connect()` return value #3847
 309 * docs: downgrade dox and highlight.js to fix docs build #3845
 310 * docs: clean up typo #3842 [Flash-](https://github.com/Flash-)
 311 * fix(document): storeShard handles undefined values #3841
 312 * chore: more linting #3838 [TrejGun](https://github.com/TrejGun)
 313 * fix(schema): handle `text: true` as a way to declare a text index #3824
 314
 3154.4.0 / 2016-02-02
 316==================
 317 * docs: fix expireAfterSeconds index option name #3831 [Flash-](https://github.com/Flash-)
 318 * chore: run lint after test #3829 [ChristianMurphy](https://github.com/ChristianMurphy)
 319 * chore: use power-assert instead of assert #3828 [TrejGun](https://github.com/TrejGun)
 320 * chore: stricter lint #3827 [TrejGun](https://github.com/TrejGun)
 321 * feat(types): casting moment to date #3813 [TrejGun](https://github.com/TrejGun)
 322 * chore: comma-last lint for test folder #3810 [ChristianMurphy](https://github.com/ChristianMurphy)
 323 * fix: upgrade async mpath, mpromise, muri, and sliced #3801 [TrejGun](https://github.com/TrejGun)
 324 * fix(query): geo queries now return proper ES2015 promises #3800 [TrejGun](https://github.com/TrejGun)
 325 * perf(types): use `Object.defineProperties()` for array #3799 [TrejGun](https://github.com/TrejGun)
 326 * fix(model): mapReduce, ensureIndexes, remove, and save properly return ES2015 promises #3795 #3628 #3595 [TrejGun](https://github.com/TrejGun)
 327 * docs: fixed dates in History.md #3791 [Jokero](https://github.com/Jokero)
 328 * feat: connect, open, openSet, and disconnect return ES2015 promises #3790 #3622 [TrejGun](https://github.com/TrejGun)
 329 * feat: custom type for int32 via mongoose-int32 npm package #3652 #3102
 330 * feat: basic custom schema type API #995
 331 * feat(model): `insertMany()` for more performant bulk inserts #723
 332
 3334.3.7 / 2016-01-23
 334==================
 335 * docs: grammar fix in timestamps docs #3786 [zclancy](https://github.com/zclancy)
 336 * fix(document): setting nested populated docs #3783 [slamuu](https://github.com/slamuu)
 337 * fix(document): don't call post save hooks twice for pushed docs #3780
 338 * fix(model): handle `_id=0` correctly #3776
 339 * docs(middleware): async post hooks #3770
 340 * docs: remove confusing sentence #3765 [marcusmellis89](https://github.com/marcusmellis89)
 341
 3423.8.39 / 2016-01-15
 343===================
 344 * fixed; casting a number to a buffer #3764
 345 * fixed; enumerating virtual property with nested objects #3743 [kusold](https://github.com/kusold)
 346
 3474.3.6 / 2016-01-15
 348==================
 349 * fix(types): casting a number to a buffer #3764
 350 * fix: add "listener" to reserved keywords #3759
 351 * chore: upgrade uglify #3757 [ChristianMurphy](https://github.com/ChristianMurphy)
 352 * fix: broken execPopulate() in 4.3.5 #3755 #3753
 353 * fix: ability to remove() a single embedded doc #3754
 354 * style: comma-last in test folder #3751 [ChristianMurphy](https://github.com/ChristianMurphy)
 355 * docs: clarify versionKey option #3747
 356 * fix: improve colorization for arrays #3744 [TrejGun](https://github.com/TrejGun)
 357 * fix: webpack build #3713
 358
 3594.3.5 / 2016-01-09
 360==================
 361 * fix(query): throw when 4th parameter to update not a function #3741 [kasselTrankos](https://github.com/kasselTrankos)
 362 * fix(document): separate error type for setting an object to a primitive #3735
 363 * fix(populate): Model.populate returns ES6 promise #3734
 364 * fix(drivers): re-register event handlers after manual reconnect #3729
 365 * docs: broken links #3727
 366 * fix(validation): update validators run array validation #3724
 367 * docs: clarify the need to use markModified with in-place date ops #3722
 368 * fix(document): mark correct path as populated when manually populating array #3721
 369 * fix(aggregate): support for array pipeline argument to append #3718 [dbkup](https://github.com/dbkup)
 370 * docs: clarify `.connect()` callback #3705
 371 * fix(schema): properly validate nested single nested docs #3702
 372 * fix(types): handle setting documentarray of wrong type #3701
 373 * docs: broken links #3700
 374 * fix(drivers): debug output properly displays '0' #3689
 375
 3763.8.38 / 2016-01-07
 377===================
 378 * fixed; aggregate.append an array #3730 [dbkup](https://github.com/dbkup)
 379
 3804.3.4 / 2015-12-23
 381==================
 382 * fix: upgrade mongodb driver to 2.1.2 for repl set error #3712 [sansmischevia](https://github.com/sansmischevia)
 383 * docs: validation docs typo #3709 [ivanmaeder](https://github.com/ivanmaeder)
 384 * style: remove unused variables #3708 [ChristianMurphy](https://github.com/ChristianMurphy)
 385 * fix(schema): duck-typing for schemas #3703 [mgcrea](https://github.com/mgcrea)
 386 * docs: connection sample code issue #3697
 387 * fix(schema): duck-typing for schemas #3693 [mgcrea](https://github.com/mgcrea)
 388 * docs: clarify id schema option #3638
 389
 3904.3.3 / 2015-12-18
 391==================
 392 * fix(connection): properly support 'replSet' as well as 'replset' #3688 [taxilian](https://github.com/taxilian)
 393 * fix(document): single nested doc pre hooks called before nested doc array #3687 [aliatsis](https://github.com/aliatsis)
 394
 3954.3.2 / 2015-12-17
 396==================
 397 * fix(document): .set() into single nested schemas #3686
 398 * fix(connection): support 'replSet' as well as 'replset' option #3685
 399 * fix(document): bluebird unhandled rejection when validating doc arrays #3681
 400 * fix(document): hooks for doc arrays in single nested schemas #3680
 401 * fix(document): post hooks for single nested schemas #3679
 402 * fix: remove unused npm module #3674 [sybarite](https://github.com/sybarite)
 403 * fix(model): don't swallow exceptions in nested doc save callback #3671
 404 * docs: update keepAlive info #3667 [ChrisZieba](https://github.com/ChrisZieba)
 405 * fix(document): strict 'throw' throws a specific mongoose error #3662
 406 * fix: flakey test #3332
 407 * fix(query): more robust check for RegExp #2969
 408
 4094.3.1 / 2015-12-11
 410==================
 411 * feat(aggregate): `.sample()` helper #3665
 412 * fix(query): bitwise query operators with buffers #3663
 413 * docs(migration): clarify `new` option and findByIdAndUpdate #3661
 414
 4154.3.0 / 2015-12-09
 416==================
 417 * feat(query): support for mongodb 3.2 bitwise query operators #3660
 418 * style: use comma-last style consistently #3657 [ChristianMurphy](https://github.com/ChristianMurphy)
 419 * feat: upgrade mongodb driver to 2.1.0 for full MongoDB 3.2 support #3656
 420 * feat(aggregate): `.lookup()` helper #3532
 421
 4224.2.10 / 2015-12-08
 423===================
 424 * fixed; upgraded marked #3653 [ChristianMurphy](https://github.com/ChristianMurphy)
 425 * docs; cross-db populate #3648
 426 * docs; update mocha URL #3646 [ojhaujjwal](https://github.com/ojhaujjwal)
 427 * fixed; call close callback asynchronously #3645
 428 * docs; virtuals.html issue #3644 [Psarna94](https://github.com/Psarna94)
 429 * fixed; single embedded doc casting on init #3642
 430 * docs; validation docs improvements #3640
 431
 4324.2.9 / 2015-12-02
 433==================
 434 * docs; defaults docs #3625
 435 * fix; nested numeric keys causing an embedded document crash #3623
 436 * fix; apply path getters before virtual getters #3618
 437 * fix; casting for arrays in single nested schemas #3616
 438
 4394.2.8 / 2015-11-25
 440==================
 441 * docs; clean up README links #3612 [ReadmeCritic](https://github.com/ReadmeCritic)
 442 * fix; ESLint improvements #3605 [ChristianMurphy](https://github.com/ChristianMurphy)
 443 * fix; assigning single nested subdocs #3601
 444 * docs; describe custom logging functions in `mongoose.set()` docs #3557
 445
 4464.2.7 / 2015-11-20
 447==================
 448 * fixed; readPreference connection string option #3600
 449 * fixed; pulling from manually populated arrays #3598 #3579
 450 * docs; FAQ about OverwriteModelError #3597 [stcruy](https://github.com/stcruy)
 451 * fixed; setting single embedded schemas to null #3596
 452 * fixed; indexes for single embedded schemas #3594
 453 * docs; clarify projection for `findOne()` #3593 [gunar](https://github.com/gunar)
 454 * fixed; .ownerDocument() method on single embedded schemas #3589
 455 * fixed; properly throw casterror for query on single embedded schema #3580
 456 * upgraded; mongodb driver -> 2.0.49 for reconnect issue fix #3481
 457
 4584.2.6 / 2015-11-16
 459==================
 460 * fixed; ability to manually populate an array #3575
 461 * docs; clarify `isAsync` parameter to hooks #3573
 462 * fixed; use captureStackTrace if possible instead #3571
 463 * fixed; crash with buffer and update validators #3565 [johnpeb](https://github.com/johnpeb)
 464 * fixed; update casting with operators overwrite: true #3564
 465 * fixed; validation with single embedded docs #3562
 466 * fixed; inline docs inherit parents $type key #3560
 467 * docs; bad grammar in populate docs #3559 [amaurymedeiros](https://github.com/amaurymedeiros)
 468 * fixed; properly handle populate option for find() #2321
 469
 4703.8.37 / 2015-11-16
 471===================
 472 * fixed; use retainKeyOrder for cloning update op #3572
 473
 4744.2.5 / 2015-11-09
 475==================
 476 * fixed; handle setting fields in pre update hooks with exec #3549
 477 * upgraded; ESLint #3547 [ChristianMurphy](https://github.com/ChristianMurphy)
 478 * fixed; bluebird unhandled rejections with cast errors and .exec #3543
 479 * fixed; min/max validators handling undefined #3539
 480 * fixed; standalone mongos connections #3537
 481 * fixed; call `.toObject()` when setting a single nested doc #3535
 482 * fixed; single nested docs now have methods #3534
 483 * fixed; single nested docs with .create() #3533 #3521 [tusbar](https://github.com/tusbar)
 484 * docs; deep populate docs #3528
 485 * fixed; deep populate schema ref handling #3507
 486 * upgraded; mongodb driver -> 2.0.48 for sort overflow issue #3493
 487 * docs; clarify default ids for discriminators #3482
 488 * fixed; properly support .update(doc) #3221
 489
 4904.2.4 / 2015-11-02
 491==================
 492 * fixed; upgraded `ms` package for security vulnerability #3524 [fhemberger](https://github.com/fhemberger)
 493 * fixed; ESlint rules #3517 [ChristianMurphy](https://github.com/ChristianMurphy)
 494 * docs; typo in aggregation docs #3513 [rafakato](https://github.com/rafakato)
 495 * fixed; add `dontThrowCastError` option to .update() for promises #3512
 496 * fixed; don't double-cast buffers in node 4.x #3510 #3496
 497 * fixed; population with single embedded schemas #3501
 498 * fixed; pre('set') hooks work properly #3479
 499 * docs; promises guide #3441
 500
 5014.2.3 / 2015-10-26
 502==================
 503 * docs; remove unreferenced function in middleware.jade #3506
 504 * fixed; handling auth with no username/password #3500 #3498 #3484 [mleanos](https://github.com/mleanos)
 505 * fixed; more ESlint rules #3491 [ChristianMurphy](https://github.com/ChristianMurphy)
 506 * fixed; swallowing exceptions in save callback #3478
 507 * docs; fixed broken links in subdocs guide #3477
 508 * fixed; casting booleans to numbers #3475
 509 * fixed; report CastError for subdoc arrays in findOneAndUpdate #3468
 510 * fixed; geoNear returns ES6 promise #3458
 511
 5124.2.2 / 2015-10-22
 513==================
 514 * fixed; go back to old pluralization code #3490
 515
 5164.2.1 / 2015-10-22
 517==================
 518 * fixed; pluralization issues #3492 [ChristianMurphy](https://github.com/ChristianMurphy)
 519
 5204.2.0 / 2015-10-22
 521==================
 522 * added; support for skipVersioning for document arrays #3467 [chazmo03](https://github.com/chazmo03)
 523 * added; ability to customize schema 'type' key #3459 #3245
 524 * fixed; writeConcern for index builds #3455
 525 * added; emit event when individual index build starts #3440 [objectiveSee](https://github.com/objectiveSee)
 526 * added; 'context' option for update validators #3430
 527 * refactor; pluralization now in separate pluralize-mongoose npm module #3415 [ChristianMurphy](https://github.com/ChristianMurphy)
 528 * added; customizable error validation messages #3406 [geronime](https://github.com/geronime)
 529 * added; support for passing 'minimize' option to update #3381
 530 * added; ability to customize debug logging format #3261
 531 * added; baseModelName property for discriminator models #3202
 532 * added; 'emitIndexErrors' option #3174
 533 * added; 'async' option for aggregation cursor to support buffering #3160
 534 * added; ability to skip validation for individual save() calls #2981
 535 * added; single embedded schema support #2689 #585
 536 * added; depopulate function #2509
 537
 5384.1.12 / 2015-10-19
 539===================
 540 * docs; use readPreference instead of slaveOk for Query.setOptions docs #3471 [buunguyen](https://github.com/buunguyen)
 541 * fixed; more helpful error when regexp contains null bytes #3456
 542 * fixed; x509 auth issue #3454 [NoxHarmonium](https://github.com/NoxHarmonium)
 543
 5443.8.36 / 2015-10-18
 545===================
 546 * fixed; Make array props non-enumerable #3461 [boblauer](https://github.com/boblauer)
 547
 5484.1.11 / 2015-10-12
 549===================
 550 * fixed; update timestamps for update() if they're enabled #3450 [isayme](https://github.com/isayme)
 551 * fixed; unit test error on node 0.10 #3449 [isayme](https://github.com/isayme)
 552 * docs; timestamp option docs #3448 [isayme](https://github.com/isayme)
 553 * docs; fix unexpected indent #3443 [isayme](https://github.com/isayme)
 554 * fixed; use ES6 promises for Model.prototype.remove() #3442
 555 * fixed; don't use unused 'safe' option for index builds #3439
 556 * fixed; elemMatch casting bug #3437 #3435 [DefinitelyCarter](https://github.com/DefinitelyCarter)
 557 * docs; schema.index docs #3434
 558 * fixed; exceptions in save() callback getting swallowed on mongodb 2.4 #3371
 559
 5604.1.10 / 2015-10-05
 561===================
 562 * docs; improve virtuals docs to explain virtuals schema option #3433 [zoyaH](https://github.com/zoyaH)
 563 * docs; MongoDB server version compatibility guide #3427
 564 * docs; clarify that findById and findByIdAndUpdate fire hooks #3422
 565 * docs; clean up Model.save() docs #3420
 566 * fixed; properly handle projection with just id #3407 #3412
 567 * fixed; infinite loop when database document is corrupted #3405
 568 * docs; clarify remove middleware #3388
 569
 5704.1.9 / 2015-09-28
 571==================
 572 * docs; minlength and maxlength string validation docs #3368 #3413 [cosmosgenius](https://github.com/cosmosgenius)
 573 * fixed; linting for infix operators #3397 [ChristianMurphy](https://github.com/ChristianMurphy)
 574 * fixed; proper casting for $all #3394
 575 * fixed; unhandled rejection warnings with .create() #3391
 576 * docs; clarify update validators on paths that aren't explicitly set #3386
 577 * docs; custom validator examples #2778
 578
 5794.1.8 / 2015-09-21
 580==================
 581 * docs; fixed typo in example #3390 [kmctown](https://github.com/kmctown)
 582 * fixed; error in toObject() #3387 [guumaster](https://github.com/guumaster)
 583 * fixed; handling for casting null dates #3383 [alexmingoia](https://github.com/alexmingoia)
 584 * fixed; passing composite ids to `findByIdAndUpdate` #3380
 585 * fixed; linting #3376 #3375 [ChristianMurphy](https://github.com/ChristianMurphy)
 586 * fixed; added NodeJS v4 to Travis #3374 [ChristianMurphy](https://github.com/ChristianMurphy)
 587 * fixed; casting $elemMatch inside of $not #3373 [gaguirre](https://github.com/gaguirre)
 588 * fixed; handle case where $slice is 0 #3369
 589 * fixed; avoid running getters if path is populated #3357
 590 * fixed; cast documents to objects when setting to a nested path #3346
 591
 5924.1.7 / 2015-09-14
 593==================
 594 * docs; typos in SchemaType documentation #3367 [jasson15](https://github.com/jasson15)
 595 * fixed; MONGOOSE_DRIVER_PATH env variable again #3360
 596 * docs; added validateSync docs #3353
 597 * fixed; set findOne op synchronously in query #3344
 598 * fixed; handling for `.pull()` on a documentarray without an id #3341
 599 * fixed; use natural order for cloning update conditions #3338
 600 * fixed; issue with strict mode casting for mixed type updates #3337
 601
 6024.1.6 / 2015-09-08
 603==================
 604 * fixed; MONGOOSE_DRIVER_PATH env variable #3345 [g13013](https://github.com/g13013)
 605 * docs; global autoIndex option #3335 [albertorestifo](https://github.com/albertorestifo)
 606 * docs; model documentation typos #3330
 607 * fixed; report reason for CastError #3320
 608 * fixed; .populate() no longer returns true after re-assigning #3308
 609 * fixed; discriminators with aggregation geoNear #3304
 610 * docs; discriminator docs #2743
 611
 6124.1.5 / 2015-09-01
 613==================
 614 * fixed; document.remove() removing all docs #3326 #3325
 615 * fixed; connect() checks for rs_name in options #3299
 616 * docs; examples for schema.set() #3288
 617 * fixed; checkKeys issue with bluebird #3286 [gregthegeek](https://github.com/gregthegeek)
 618
 6194.1.4 / 2015-08-31
 620==================
 621 * fixed; ability to set strict: false for update #3305
 622 * fixed; .create() properly uses ES6 promises #3297
 623 * fixed; pre hooks on nested subdocs #3291 #3284 [aliatsis](https://github.com/aliatsis)
 624 * docs; remove unclear text in .remove() docs #3282
 625 * fixed; pre hooks called twice for 3rd-level nested doc #3281
 626 * fixed; nested transforms #3279
 627 * upgraded; mquery -> 1.6.3 #3278 #3272
 628 * fixed; don't swallow callback errors by default #3273 #3222
 629 * fixed; properly get nested paths from nested schemas #3265
 630 * fixed; remove() with id undefined deleting all docs #3260 [thanpolas](https://github.com/thanpolas)
 631 * fixed; handling for non-numeric projections #3256
 632 * fixed; findById with id undefined returning first doc #3255
 633 * fixed; use retainKeyOrder for update #3215
 634 * added; passRawResult option to findOneAndUpdate for backwards compat #3173
 635
 6364.1.3 / 2015-08-16
 637==================
 638 * fixed; getUpdate() in pre update hooks #3520 [gregthegeek](https://github.com/gregthegeek)
 639 * fixed; handleArray() ensures arg is an array #3238 [jloveridge](https://github.com/jloveridge)
 640 * fixed; refresh required path cache when recreating docs #3199
 641 * fixed; $ operator on unwind aggregation helper #3197
 642 * fixed; findOneAndUpdate() properly returns raw result as third arg to callback #3173
 643 * fixed; querystream with dynamic refs #3108
 644
 6453.8.35 / 2015-08-14
 646===================
 647 * fixed; handling for minimize on nested objects #2930
 648 * fixed; don't crash when schema.path.options undefined #1824
 649
 6504.1.2 / 2015-08-10
 651==================
 652 * fixed; better handling for Jade templates #3241 [kbadk](https://github.com/kbadk)
 653 * added; ESlint trailing spaces #3234 [ChristianMurphy](https://github.com/ChristianMurphy)
 654 * added; ESlint #3191 [ChristianMurphy](https://github.com/ChristianMurphy)
 655 * fixed; properly emit event on disconnect #3183
 656 * fixed; copy options properly using Query.toConstructor() #3176
 657 * fixed; setMaxListeners() issue in browser build #3170
 658 * fixed; node driver -> 2.0.40 to not store undefined keys as null #3169
 659 * fixed; update validators handle positional operator #3167
 660 * fixed; handle $all + $elemMatch query casting #3163
 661 * fixed; post save hooks don't swallow extra args #3155
 662 * docs; spelling mistake in index.jade #3154
 663 * fixed; don't crash when toObject() has no fields #3130
 664 * fixed; apply toObject() recursively for find and update queries #3086 [naoina](https://github.com/naoina)
 665
 6664.1.1 / 2015-08-03
 667==================
 668 * fixed; aggregate exec() crash with no callback #3212 #3198 [jpgarcia](https://github.com/jpgarcia)
 669 * fixed; pre init hooks now properly synchronous #3207 [burtonjc](https://github.com/burtonjc)
 670 * fixed; updateValidators doesn't flatten dates #3206 #3194 [victorkohl](https://github.com/victorkohl)
 671 * fixed; default fields don't make document dirty between saves #3205 [burtonjc](https://github.com/burtonjc)
 672 * fixed; save passes 0 as numAffected rather than undefined when no change #3195 [burtonjc](https://github.com/burtonjc)
 673 * fixed; better handling for positional operator in update #3185
 674 * fixed; use Travis containers #3181 [ChristianMurphy](https://github.com/ChristianMurphy)
 675 * fixed; leaked variable #3180 [ChristianMurphy](https://github.com/ChristianMurphy)
 676
 6774.1.0 / 2015-07-24
 678==================
 679 * added; `schema.queue()` now public #3193
 680 * added; raw result as third parameter to findOneAndX callback #3173
 681 * added; ability to run validateSync() on only certain fields #3153
 682 * added; subPopulate #3103 [timbur](https://github.com/timbur)
 683 * added; $isDefault function on documents #3077
 684 * added; additional properties for built-in validator messages #3063 [KLicheR](https://github.com/KLicheR)
 685 * added; getQuery() and getUpdate() functions for Query #3013
 686 * added; export DocumentProvider #2996
 687 * added; ability to remove path from schema #2993 [JohnnyEstilles](https://github.com/JohnnyEstilles)
 688 * added; .explain() helper for aggregate #2714
 689 * added; ability to specify which ES6-compatible promises library mongoose uses #2688
 690 * added; export Aggregate #1910
 691
 6924.0.8 / 2015-07-20
 693==================
 694 * fixed; assignment with document arrays #3178 [rosston](https://github.com/rosston)
 695 * docs; remove duplicate paragraph #3164 [rhmeeuwisse](https://github.com/rhmeeuwisse)
 696 * docs; improve findOneAndXYZ parameter descriptions #3159 [rhmeeuwisse](https://github.com/rhmeeuwisse)
 697 * docs; add findOneAndRemove to list of supported middleware #3158
 698 * docs; clarify ensureIndex #3156
 699 * fixed; refuse to save/remove document without id #3118
 700 * fixed; hooks next() no longer accidentally returns promise #3104
 701 * fixed; strict mode for findOneAndUpdate #2947
 702 * added; .min.js.gz file for browser component #2806
 703
 7043.8.34 / 2015-07-20
 705===================
 706 * fixed; allow using $rename #3171
 707 * fixed; no longer modifies update arguments #3008
 708
 7094.0.7 / 2015-07-11
 710==================
 711 * fixed; documentarray id method when using object id #3157 [siboulet](https://github.com/siboulet)
 712 * docs; improve findById docs #3147
 713 * fixed; update validators handle null properly #3136 [odeke-em](https://github.com/odeke-em)
 714 * docs; jsdoc syntax errors #3128 [rhmeeuwisse](https://github.com/rhmeeuwisse)
 715 * docs; fix typo #3126 [rhmeeuwisse](https://github.com/rhmeeuwisse)
 716 * docs; proper formatting in queries.jade #3121 [rhmeeuwisse](https://github.com/rhmeeuwisse)
 717 * docs; correct example for string maxlength validator #3111 [rhmeeuwisse](https://github.com/rhmeeuwisse)
 718 * fixed; setDefaultsOnInsert with arrays #3107
 719 * docs; LearnBoost -> Automattic in package.json #3099
 720 * docs; pre update hook example #3094 [danpe](https://github.com/danpe)
 721 * docs; clarify query middleware example #3051
 722 * fixed; ValidationErrors in strict mode #3046
 723 * fixed; set findOneAndUpdate properties before hooks run #3024
 724
 7253.8.33 / 2015-07-10
 726===================
 727 * upgraded; node driver -> 1.4.38
 728 * fixed; dont crash when `match` validator undefined
 729
 7304.0.6 / 2015-06-21
 731==================
 732 * upgraded; node driver -> 2.0.34 #3087
 733 * fixed; apply setters on addToSet, etc #3067 [victorkohl](https://github.com/victorkohl)
 734 * fixed; missing semicolons #3065 [sokolikp](https://github.com/sokolikp)
 735 * fixed; proper handling for async doc hooks #3062 [gregthegeek](https://github.com/gregthegeek)
 736 * fixed; dont set failed populate field to null if other docs are successfully populated #3055 [eloytoro](https://github.com/eloytoro)
 737 * fixed; setDefaultsOnInsert with document arrays #3034 [taxilian](https://github.com/taxilian)
 738 * fixed; setters fired on array items #3032
 739 * fixed; stop validateSync() on first error #3025 [victorkohl](https://github.com/victorkohl)
 740 * docs; improve query docs #3016
 741 * fixed; always exclude _id when its deselected #3010
 742 * fixed; enum validator kind property #3009
 743 * fixed; mquery collection names #3005
 744 * docs; clarify mongos option #3000
 745 * docs; clarify that query builder has a .then() #2995
 746 * fixed; race condition in dynamic ref #2992
 747
 7483.8.31 / 2015-06-20
 749===================
 750 * fixed; properly handle text search with discriminators and $meta #2166
 751
 7524.0.5 / 2015-06-05
 753==================
 754 * fixed; ObjectIds and buffers when mongodb driver is a sibling dependency #3050 #3048 #3040 #3031 #3020 #2988 #2951
 755 * fixed; warn user when 'increment' is used in schema #3039
 756 * fixed; setDefaultsOnInsert with array in schema #3035
 757 * fixed; dont use default Object toString to cast to string #3030
 758 * added; npm badge #3020 [odeke-em](https://github.com/odeke-em)
 759 * fixed; proper handling for calling .set() with a subdoc #2782
 760 * fixed; dont throw cast error when using $rename on non-string path #1845
 761
 7623.8.30 / 2015-06-05
 763===================
 764 * fixed; enable users to set all options with tailable() #2883
 765
 7664.0.4 / 2015-05-28
 767==================
 768 * docs; findAndModify new parameter correct default value #3012 [JonForest](https://github.com/JonForest)
 769 * docs; clarify pluralization rules #2999 [anonmily](https://github.com/anonmily)
 770 * fix; discriminators with schema methods #2978
 771 * fix; make `isModified` a schema reserved keyword #2975
 772 * fix; properly fire setters when initializing path with object #2943
 773 * fix; can use `setDefaultsOnInsert` without specifying `runValidators` #2938
 774 * fix; always set validation errors `kind` property #2885
 775 * upgraded; node driver -> 2.0.33 #2865
 776
 7773.8.29 / 2015-05-27
 778===================
 779 * fixed; Handle JSON.stringify properly for nested docs #2990
 780
 7814.0.3 / 2015-05-13
 782==================
 783 * upgraded; mquery -> 1.5.1 #2983
 784 * docs; clarify context for query middleware #2974
 785 * docs; fix missing type -> kind rename in History.md #2961
 786 * fixed; broken ReadPreference include on Heroku #2957
 787 * docs; correct form for cursor aggregate option #2955
 788 * fixed; sync post hooks now properly called after function #2949 #2925
 789 * fixed; fix sub-doc validate() function #2929
 790 * upgraded; node driver -> 2.0.30 #2926
 791 * docs; retainKeyOrder for save() #2924
 792 * docs; fix broken class names #2913
 793 * fixed; error when using node-clone on a doc #2909
 794 * fixed; no more hard references to bson #2908 #2906
 795 * fixed; dont overwrite array values #2907 [naoina](https://github.com/naoina)
 796 * fixed; use readPreference=primary for findOneAndUpdate #2899 #2823
 797 * docs; clarify that update validators only run on $set and $unset #2889
 798 * fixed; set kind consistently for built-in validators #2885
 799 * docs; single field populated documents #2884
 800 * fixed; nested objects are now enumerable #2880 [toblerpwn](https://github.com/toblerpwn)
 801 * fixed; properly populate field when ref, lean, stream used together #2841
 802 * docs; fixed migration guide jade error #2807
 803
 8043.8.28 / 2015-05-12
 805===================
 806 * fixed; proper handling for toJSON options #2910
 807 * fixed; dont attach virtuals to embedded docs in update() #2046
 808
 8094.0.2 / 2015-04-23
 810==================
 811 * fixed; error thrown when calling .validate() on subdoc not in an array #2902
 812 * fixed; rename define() to play nice with webpack #2900 [jspears](https://github.com/jspears)
 813 * fixed; pre validate called twice with discriminators #2892
 814 * fixed; .inspect() on mongoose.Types #2875
 815 * docs; correct callback params for Model.update #2872
 816 * fixed; setDefaultsOnInsert now works when runValidators not specified #2870
 817 * fixed; Document now wraps EventEmitter.addListener #2867
 818 * fixed; call non-hook functions in schema queue #2856
 819 * fixed; statics can be mocked out for tests #2848 [ninelb](https://github.com/ninelb)
 820 * upgraded; mquery 1.4.0 for bluebird bug fix #2846
 821 * fixed; required validators run first #2843
 822 * docs; improved docs for new option to findAndMody #2838
 823 * docs; populate example now uses correct field #2837 [swilliams](https://github.com/swilliams)
 824 * fixed; pre validate changes causing VersionError #2835
 825 * fixed; get path from correct place when setting CastError #2832
 826 * docs; improve docs for Model.update() function signature #2827 [irnc](https://github.com/irnc)
 827 * fixed; populating discriminators #2825 [chetverikov](https://github.com/chetverikov)
 828 * fixed; discriminators with nested schemas #2821
 829 * fixed; CastErrors with embedded docs #2819
 830 * fixed; post save hook context #2816
 831 * docs; 3.8.x -> 4.x migration guide #2807
 832 * fixed; proper _distinct copying for query #2765 [cdelauder](https://github.com/cdelauder)
 833
 8343.8.27 / 2015-04-22
 835===================
 836 * fixed; dont duplicate db calls on Q.ninvoke() #2864
 837 * fixed; Model.find arguments naming in docs #2828
 838 * fixed; Support ipv6 in connection strings #2298
 839
 8403.8.26 / 2015-04-07
 841===================
 842 * fixed; TypeError when setting date to undefined #2833
 843 * fixed; handle CastError properly in distinct() with no callback #2786
 844 * fixed; broken links in queries docs #2779
 845 * fixed; dont mark buffer as modified when setting type initially #2738
 846 * fixed; dont crash when using slice with populate #1934
 847
 8484.0.1 / 2015-03-28
 849==================
 850 * fixed; properly handle empty cast doc in update() with promises #2796
 851 * fixed; unstable warning #2794
 852 * fixed; findAndModify docs now show new option is false by default #2793
 853
 8544.0.0 / 2015-03-25
 855==================
 856 * fixed; on-the-fly schema docs typo #2783 [artiifix](https://github.com/artiifix)
 857 * fixed; cast error validation handling #2775 #2766 #2678
 858 * fixed; discriminators with populate() #2773 #2719 [chetverikov](https://github.com/chetverikov)
 859 * fixed; increment now a reserved path #2709
 860 * fixed; avoid sending duplicate object ids in populate() #2683
 861 * upgraded; mongodb to 2.0.24 to properly emit reconnect event multiple times #2656
 862
 8634.0.0-rc4 / 2015-03-14
 864======================
 865 * fixed; toObject virtuals schema option handled properly #2751
 866 * fixed; update validators work on document arrays #2733
 867 * fixed; check for cast errors on $set #2729
 868 * fixed; instance field set for all schema types #2727 [csdco](https://github.com/csdco)
 869 * fixed; dont run other validators if required fails #2725
 870 * fixed; custom getters execute on ref paths #2610
 871 * fixed; save defaults if they were set when doc was loaded from db #2558
 872 * fixed; pre validate now runs before pre save #2462
 873 * fixed; no longer throws errors with --use_strict #2281
 874
 8753.8.25 / 2015-03-13
 876===================
 877 * fixed; debug output reverses order of aggregation keys #2759
 878 * fixed; $eq is a valid query selector in 3.0 #2752
 879 * fixed; upgraded node driver to 1.4.32 for handling non-numeric poolSize #2682
 880 * fixed; update() with overwrite sets _id for nested docs #2658
 881 * fixed; casting for operators in $elemMatch #2199
 882
 8834.0.0-rc3 / 2015-02-28
 884======================
 885 * fixed; update() pre hooks run before validators #2706
 886 * fixed; setters not called on arrays of refs #2698 [brandom](https://github.com/brandom)
 887 * fixed; use node driver 2.0.18 for nodejs 0.12 support #2685
 888 * fixed; comments reference file that no longer exists #2681
 889 * fixed; populated() returns _id of manually populated doc #2678
 890 * added; ability to exclude version key in toObject() #2675
 891 * fixed; dont allow setting nested path to a string #2592
 892 * fixed; can cast objects with _id field to ObjectIds #2581
 893 * fixed; on-the-fly schema getters #2360
 894 * added; strict option for findOneAndUpdate() #1967
 895
 8963.8.24 / 2015-02-25
 897===================
 898 * fixed; properly apply child schema transforms #2691
 899 * fixed; make copy of findOneAndUpdate options before modifying #2687
 900 * fixed; apply defaults when parent path is selected #2670 #2629
 901 * fixed; properly get ref property for nested paths #2665
 902 * fixed; node driver makes copy of authenticate options before modifying them #2619
 903 * fixed; dont block process exit when auth fails #2599
 904 * fixed; remove redundant clone in update() #2537
 905
 9064.0.0-rc2 / 2015-02-10
 907======================
 908 * added; io.js to travis build
 909 * removed; browser build dependencies not installed by default
 910 * added; dynamic refpaths #2640 [chetverikov](https://github.com/chetverikov)
 911 * fixed; dont call child schema transforms on parent #2639 [chetverikov](https://github.com/chetverikov)
 912 * fixed; get rid of remove option if new is set in findAndModify #2598
 913 * fixed; aggregate all document array validation errors #2589
 914 * fixed; custom setters called when setting value to undefined #1892
 915
 9163.8.23 / 2015-02-06
 917===================
 918 * fixed; unset opts.remove when upsert is true #2519
 919 * fixed; array saved as object when path is object in array #2442
 920 * fixed; inline transforms #2440
 921 * fixed; check for callback in count() #2204
 922 * fixed; documentation for selecting fields #1534
 923
 9244.0.0-rc1 / 2015-02-01
 925======================
 926 * fixed; use driver 2.0.14
 927 * changed; use transform: true by default #2245
 928
 9294.0.0-rc0 / 2015-01-31
 930===================
 931 * fixed; wrong order for distinct() params #2628
 932 * fixed; handling no query argument to remove() #2627
 933 * fixed; createModel and discriminators #2623 [ashaffer](https://github.com/ashaffer)
 934 * added; pre('count') middleware #2621
 935 * fixed; double validation calls on document arrays #2618
 936 * added; validate() catches cast errors #2611
 937 * fixed; respect replicaSet parameter in connection string #2609
 938 * added; can explicitly exclude paths from versioning #2576 [csabapalfi](https://github.com/csabapalfi)
 939 * upgraded; driver to 2.0.15 #2552
 940 * fixed; save() handles errors more gracefully in ES6 #2371
 941 * fixed; undefined is now a valid argument to findOneAndUpdate #2272
 942 * changed; `new` option to findAndModify ops is false by default #2262
 943
 9443.8.22 / 2015-01-24
 945===================
 946 * upgraded; node-mongodb-native to 1.4.28 #2587 [Climax777](https://github.com/Climax777)
 947 * added; additional documentation for validators #2449
 948 * fixed; stack overflow when creating massive arrays #2423
 949 * fixed; undefined is a valid id for queries #2411
 950 * fixed; properly create nested schema index when same schema used twice #2322
 951 * added; link to plugin generator in docs #2085 [huei90](https://github.com/huei90)
 952 * fixed; optional arguments documentation for findOne() #1971 [nachinius](https://github.com/nachinius)
 953
 9543.9.7 / 2014-12-19
 955===================
 956 * added; proper cursors for aggregate #2539 [changyy](https://github.com/changyy)
 957 * added; min/max built-in validators for dates #2531 [bshamblen](https://github.com/bshamblen)
 958 * fixed; save and validate are now reserved keywords #2380
 959 * added; basic documentation for browser component #2256
 960 * added; find and findOne hooks (query middleware) #2138
 961 * fixed; throw a DivergentArrayError when saving positional operator queries #2031
 962 * added; ability to use options as a document property #1416
 963 * fixed; document no longer inherits from event emitter and so domain and _events are no longer reserved #1351
 964 * removed; setProfiling #1349
 965
 9663.8.21 / 2014-12-18
 967===================
 968 * fixed; syntax in index.jade #2517 [elderbas](https://github.com/elderbas)
 969 * fixed; writable statics #2510 #2528
 970 * fixed; overwrite and explicit $set casting #2515
 971
 9723.9.6 / 2014-12-05
 973===================
 974 * added; correctly run validators on each element of array when entire array is modified #661 #1227
 975 * added; castErrors in validation #1013 [jondavidjohn](https://github.com/jondavidjohn)
 976 * added; specify text indexes in schema fields #1401 [sr527](https://github.com/sr527)
 977 * added; ability to set field with validators to undefined #1594 [alabid](https://github.com/alabid)
 978 * added; .create() returns an array when passed an array #1746 [alabid](https://github.com/alabid)
 979 * added; test suite and docs for use with co and yield #2177 #2474
 980 * fixed; subdocument toObject() transforms #2447 [chmanie](https://github.com/chmanie)
 981 * fixed; Model.create() with save errors #2484
 982 * added; pass options to .save() and .remove() #2494 [jondavidjohn](https://github.com/jondavidjohn)
 983
 9843.8.20 / 2014-12-01
 985===================
 986 * fixed; recursive readPref #2490 [kjvalencik](https://github.com/kjvalencik)
 987 * fixed; make sure to copy parameters to update() before modifying #2406 [alabid](https://github.com/alabid)
 988 * fixed; unclear documentation about query callbacks #2319
 989 * fixed; setting a schema-less field to an empty object #2314 [alabid](https://github.com/alabid)
 990 * fixed; registering statics and methods for discriminators #2167 [alabid](https://github.com/alabid)
 991
 9923.9.5 / 2014-11-10
 993===================
 994 * added; ability to disable autoIndex on a per-connection basis #1875 [sr527](https://github.com/sr527)
 995 * fixed; `geoNear()` no longer enforces legacy coordinate pairs - supports GeoJSON #1987 [alabid](https://github.com/alabid)
 996 * fixed; browser component works when minified with mangled variable names #2302
 997 * fixed; `doc.errors` now cleared before `validate()` called #2302
 998 * added; `execPopulate()` function to make `doc.populate()` compatible with promises #2317
 999 * fixed; `count()` no longer throws an error when used with `sort()` #2374
1000 * fixed; `save()` no longer recursively calls `save()` on populated fields #2418
1001
10023.8.19 / 2014-11-09
1003===================
1004 * fixed; make sure to not override subdoc _ids on find #2276 [alabid](https://github.com/alabid)
1005 * fixed; exception when comparing two documents when one lacks _id #2333 [slawo](https://github.com/slawo)
1006 * fixed; getters for properties with non-strict schemas #2439 [alabid](https://github.com/alabid)
1007 * fixed; inconsistent URI format in docs #2414 [sr527](https://github.com/sr527)
1008
10093.9.4 / 2014-10-25
1010==================
1011 * fixed; statics no longer can be overwritten #2343 [nkcmr](https://github.com/chetverikov)
1012 * added; ability to set single populated paths to documents #1530
1013 * added; setDefaultsOnInsert and runValidator options for findOneAndUpdate() #860
1014
10153.8.18 / 2014-10-22
1016==================
1017 * fixed; Dont use all toObject options in save #2340 [chetverikov](https://github.com/chetverikov)
1018
10193.9.3 / 2014-10-01
1020=================
1021 * added; support for virtuals that return objects #2294
1022 * added; ability to manually hydrate POJOs into mongoose objects #2292
1023 * added; setDefaultsOnInsert and runValidator options for update() #860
1024
10253.8.17 / 2014-09-29
1026==================
1027 * fixed; use schema options retainKeyOrder in save() #2274
1028 * fixed; fix skip in populate when limit is set #2252
1029 * fixed; fix stack overflow when passing MongooseArray to findAndModify #2214
1030 * fixed; optimize .length usage in populate #2289
1031
10323.9.2 / 2014-09-08
1033==================
1034 * added; test coverage for browser component #2255
1035 * added; in-order execution of validators #2243
1036 * added; custom fields for validators #2132
1037 * removed; exception thrown when find() used with count() #1950
1038
10393.8.16 / 2014-09-08
1040==================
1041 * fixed; properly remove modified array paths if array has been overwritten #1638
1042 * fixed; key check errors #1884
1043 * fixed; make sure populate on an array always returns a Mongoose array #2214
1044 * fixed; SSL connections with node 0.11 #2234
1045 * fixed; return sensible strings for promise errors #2239
1046
10473.9.1 / 2014-08-17
1048==================
1049 * added; alpha version of browser-side schema validation #2254
1050 * added; support passing a function to schemas `required` field #2247
1051 * added; support for setting updatedAt and createdAt timestamps #2227
1052 * added; document.validate() returns a promise #2131
1053
10543.8.15 / 2014-08-17
1055==================
1056 * fixed; Replica set connection string example in docs #2246
1057 * fixed; bubble up parseError event #2229
1058 * fixed; removed buggy populate cache #2176
1059 * fixed; dont $inc versionKey if its being $set #1933
1060 * fixed; cast $or and $and in $pull #1932
1061 * fixed; properly cast to schema in stream() #1862
1062 * fixed; memory leak in nested objects #1565 #2211 [devongovett](https://github.com/devongovett)
1063
10643.8.14 / 2014-07-26
1065==================
1066 * fixed; stringifying MongooseArray shows nested arrays #2002
1067 * fixed; use populated doc schema in toObject and toJSON by default #2035
1068 * fixed; dont crash on arrays containing null #2140
1069 * fixed; model.update w/ upsert has same return values on .exec and promise #2143
1070 * fixed; better handling for populate limit with multiple documents #2151
1071 * fixed; dont prevent users from adding weights to text index #2183
1072 * fixed; helper for aggregation cursor #2187
1073 * updated; node-mongodb-native to 1.4.7
1074
10753.8.13 / 2014-07-15
1076==================
1077 * fixed; memory leak with isNew events #2159
1078 * fixed; docs for overwrite option for update() #2144
1079 * fixed; storeShard() handles dates properly #2127
1080 * fixed; sub-doc changes not getting persisted to db after save #2082
1081 * fixed; populate with _id: 0 actually removes _id instead of setting to undefined #2123
1082 * fixed; save versionKey on findOneAndUpdate w/ upsert #2122
1083 * fixed; fix typo in 2.8 docs #2120 [shakirullahi](https://github.com/shakirullahi)
1084 * fixed; support maxTimeMs #2102 [yuukinajima](https://github.com/yuukinajima)
1085 * fixed; support $currentDate #2019
1086 * fixed; $addToSet handles objects without _ids properly #1973
1087 * fixed; dont crash on invalid nearSphere query #1874
1088
10893.8.12 / 2014-05-30
1090==================
1091 * fixed; single-server reconnect event fires #1672
1092 * fixed; sub-docs not saved when pushed into populated array #1794
1093 * fixed; .set() sometimes converts embedded docs to pojos #1954 [archangel-irk](https://github.com/archangel-irk)
1094 * fixed; sub-doc changes not getting persisted to db after save #2082
1095 * fixed; custom getter might cause mongoose to mistakenly think a path is dirty #2100 [pgherveou](https://github.com/pgherveou)
1096 * fixed; chainable helper for allowDiskUse option in aggregation #2114
1097
10983.9.0 (unstable) / 2014-05-22
1099==================
1100 * changed; added `domain` to reserved keywords #1338 #2052 [antoinepairet](https://github.com/antoinepairet)
1101 * added; asynchronous post hooks #1977 #2081 [chopachom](https://github.com/chopachom) [JasonGhent](https://github.com/JasonGhent)
1102 * added; using model for population, cross-db populate [mihai-chiorean](https://github.com/mihai-chiorean)
1103 * added; can define a type for schema validators
1104 * added; `doc.remove()` returns a promise #1619 [refack](https://github.com/refack)
1105 * added; internal promises for hooks, pre-save hooks run in parallel #1732 [refack](https://github.com/refack)
1106 * fixed; geoSearch hanging when no results returned #1846 [ghartnett](https://github.com/ghartnett)
1107 * fixed; do not set .type property on ValidationError, use .kind instead #1323
1108
11093.8.11 / 2014-05-22
1110==================
1111 * updated; node-mongodb-native to 1.4.5
1112 * reverted; #2052, fixes #2097
1113
11143.8.10 / 2014-05-20
1115==================
1116
1117 * updated; node-mongodb-native to 1.4.4
1118 * fixed; _.isEqual false negatives bug in js-bson #2070
1119 * fixed; missing check for schema.options #2014
1120 * fixed; missing support for $position #2024
1121 * fixed; options object corruption #2049
1122 * fixed; improvements to virtuals docs #2055
1123 * fixed; added `domain` to reserved keywords #2052 #1338
1124
11253.8.9 / 2014-05-08
1126==================
1127
1128 * updated; mquery to 0.7.0
1129 * updated; node-mongodb-native to 1.4.3
1130 * fixed; $near failing against MongoDB 2.6
1131 * fixed; relying on .options() to determine if collection exists
1132 * fixed; $out aggregate helper
1133 * fixed; all test failures against MongoDB 2.6.1, with caveat #2065
1134
11353.8.8 / 2014-02-22
1136==================
1137
1138 * fixed; saving Buffers #1914
1139 * updated; expose connection states for user-land #1926 [yorkie](https://github.com/yorkie)
1140 * updated; mquery to 0.5.3
1141 * updated; added get / set to reserved path list #1903 [tstrimple](https://github.com/tstrimple)
1142 * docs; README code highlighting, syntax fixes #1930 [IonicaBizau](https://github.com/IonicaBizau)
1143 * docs; fixes link in the doc at #1925 [kapeels](https://github.com/kapeels)
1144 * docs; add a missed word 'hook' for the description of the post-hook api #1924 [ipoval](https://github.com/ipoval)
1145
11463.8.7 / 2014-02-09
1147==================
1148
1149 * fixed; sending safe/read options in Query#exec #1895
1150 * fixed; findOneAnd..() with sort #1887
1151
11523.8.6 / 2014-01-30
1153==================
1154
1155 * fixed; setting readPreferences #1895
1156
11573.8.5 / 2014-01-23
1158==================
1159
1160 * fixed; ssl setting when using URI #1882
1161 * fixed; findByIdAndUpdate now respects the overwrite option #1809 [owenallenaz](https://github.com/owenallenaz)
1162
11633.8.4 / 2014-01-07
1164==================
1165
1166 * updated; mongodb driver to 1.3.23
1167 * updated; mquery to 0.4.1
1168 * updated; mpromise to 0.4.3
1169 * fixed; discriminators now work when selecting fields #1820 [daemon1981](https://github.com/daemon1981)
1170 * fixed; geoSearch with no results timeout #1846 [ghartnett](https://github.com/ghartnett)
1171 * fixed; infitite recursion in ValidationError #1834 [chetverikov](https://github.com/chetverikov)
1172
11733.8.3 / 2013-12-17
1174==================
1175
1176 * fixed; setting empty array with model.update #1838
1177 * docs; fix url
1178
11793.8.2 / 2013-12-14
1180==================
1181
1182 * fixed; enum validation of multiple values #1778 [heroicyang](https://github.com/heroicyang)
1183 * fixed; global var leak #1803
1184 * fixed; post remove now fires on subdocs #1810
1185 * fixed; no longer set default empty array for geospatial-indexed fields #1668 [shirish87](https://github.com/shirish87)
1186 * fixed; model.stream() not hydrating discriminators correctly #1792 [j](https://github.com/j)
1187 * docs: Stablility -> Stability [nikmartin](https://github.com/nikmartin)
1188 * tests; improve shard error handling
1189
11903.8.1 / 2013-11-19
1191==================
1192
1193 * fixed; mishandling of Dates with minimize/getters #1764
1194 * fixed; Normalize bugs.email, so `npm` will shut up #1769 [refack](https://github.com/refack)
1195 * docs; Improve the grammar where "lets us" was used #1777 [alexyoung](https://github.com/alexyoung)
1196 * docs; Fix some grammatical issues in the documentation #1777 [alexyoung](https://github.com/alexyoung)
1197 * docs; fix Query api exposure
1198 * docs; fix return description
1199 * docs; Added Notes on findAndUpdate() #1750 [sstadelman](https://github.com/sstadelman)
1200 * docs; Update version number in README #1762 [Fodi69](https://github.com/Fodi69)
1201
12023.8.0 / 2013-10-31
1203==================
1204
1205 * updated; warn when using an unstable version
1206 * updated; error message returned in doc.save() #1595
1207 * updated; mongodb driver to 1.3.19 (fix error swallowing behavior)
1208 * updated; mquery to 0.3.2
1209 * updated; mocha to 1.12.0
1210 * updated; mpromise 0.3.0
1211 * updated; sliced 0.0.5
1212 * removed; mongoose.Error.DocumentError (never used)
1213 * removed; namedscope (undocumented and broken) #679 #642 #455 #379
1214 * changed; no longer offically supporting node 0.6.x
1215 * changed; query.within getter is now a method -> query.within()
1216 * changed; query.intersects getter is now a method -> query.intersects()
1217 * added; custom error msgs for built-in validators #747
1218 * added; discriminator support #1647 #1003 [j](https://github.com/j)
1219 * added; support disabled collection name pluralization #1350 #1707 [refack](https://github.com/refack)
1220 * added; support for GeoJSON to Query#near [ebensing](https://github.com/ebensing)
1221 * added; stand-alone base query support - query.toConstructor() [ebensing](https://github.com/ebensing)
1222 * added; promise support to geoSearch #1614 [ebensing](https://github.com/ebensing)
1223 * added; promise support for geoNear #1614 [ebensing](https://github.com/ebensing)
1224 * added; connection.useDb() #1124 [ebensing](https://github.com/ebensing)
1225 * added; promise support to model.mapReduce()
1226 * added; promise support to model.ensureIndexes()
1227 * added; promise support to model.populate()
1228 * added; benchmarks [ebensing](https://github.com/ebensing)
1229 * added; publicly exposed connection states #1585
1230 * added; $geoWithin support #1529 $1455 [ebensing](https://github.com/ebensing)
1231 * added; query method chain validation
1232 * added; model.update `overwrite` option
1233 * added; model.geoNear() support #1563 [ebensing](https://github.com/ebensing)
1234 * added; model.geoSearch() support #1560 [ebensing](https://github.com/ebensing)
1235 * added; MongooseBuffer#subtype()
1236 * added; model.create() now returns a promise #1340
1237 * added; support for `awaitdata` query option
1238 * added; pass the doc to doc.remove() callback #1419 [JoeWagner](https://github.com/JoeWagner)
1239 * added; aggregation query builder #1404 [njoyard](https://github.com/njoyard)
1240 * fixed; document.toObject when using `minimize` and `getters` options #1607 [JedWatson](https://github.com/JedWatson)
1241 * fixed; Mixed types can now be required #1722 [Reggino](https://github.com/Reggino)
1242 * fixed; do not pluralize model names not ending with letters #1703 [refack](https://github.com/refack)
1243 * fixed; repopulating modified populated paths #1697
1244 * fixed; doc.equals() when _id option is set to false #1687
1245 * fixed; strict mode warnings #1686
1246 * fixed; $near GeoJSON casting #1683
1247 * fixed; nearSphere GeoJSON query builder
1248 * fixed; population field selection w/ strings #1669
1249 * fixed; setters not firing on null values #1445 [ebensing](https://github.com/ebensing)
1250 * fixed; handle another versioning edge case #1520
1251 * fixed; excluding subdocument fields #1280 [ebensing](https://github.com/ebensing)
1252 * fixed; allow array properties to be set to null with findOneAndUpdate [aheuermann](https://github.com/aheuermann)
1253 * fixed; subdocuments now use own toJSON opts #1376 [ebensing](https://github.com/ebensing)
1254 * fixed; model#geoNear fulfills promise when results empty #1658 [ebensing](https://github.com/ebensing)
1255 * fixed; utils.merge no longer overrides props and methods #1655 [j](https://github.com/j)
1256 * fixed; subdocuments now use their own transform #1412 [ebensing](https://github.com/ebensing)
1257 * fixed; model.remove() removes only what is necessary #1649
1258 * fixed; update() now only runs with cb or explicit true #1644
1259 * fixed; casting ref docs on creation #1606 [ebensing](https://github.com/ebensing)
1260 * fixed; model.update "overwrite" option works as documented
1261 * fixed; query#remove() works as documented
1262 * fixed; "limit" correctly applies to individual items on population #1490 [ebensing](https://github.com/ebensing)
1263 * fixed; issue with positional operator on ref docs #1572 [ebensing](https://github.com/ebensing)
1264 * fixed; benchmarks to actually output valid json
1265 * deprecated; promise#addBack (use promise#onResolve)
1266 * deprecated; promise#complete (use promise#fulfill)
1267 * deprecated; promise#addCallback (use promise#onFulFill)
1268 * deprecated; promise#addErrback (use promise#onReject)
1269 * deprecated; query.nearSphere() (use query.near)
1270 * deprecated; query.center() (use query.circle)
1271 * deprecated; query.centerSphere() (use query.circle)
1272 * deprecated; query#slaveOk (use query#read)
1273 * docs; custom validator messages
1274 * docs; 10gen -> MongoDB
1275 * docs; add Date method caveats #1598
1276 * docs; more validation details
1277 * docs; state which branch is stable/unstable
1278 * docs; mention that middleware does not run on Models
1279 * docs; promise.fulfill()
1280 * docs; fix readme spelling #1483 [yorchopolis](https://github.com/yorchopolis)
1281 * docs; fixed up the README and examples [ebensing](https://github.com/ebensing)
1282 * website; add "show code" for properties
1283 * website; move "show code" links down
1284 * website; update guide
1285 * website; add unstable docs
1286 * website; many improvements
1287 * website; fix copyright #1439
1288 * website; server.js -> static.js #1546 [nikmartin](https://github.com/nikmartin)
1289 * tests; refactor 1703
1290 * tests; add test generator
1291 * tests; validate formatMessage() throws
1292 * tests; add script for continuously running tests
1293 * tests; fixed versioning tests
1294 * tests; race conditions in tests
1295 * tests; added for nested and/or queries
1296 * tests; close some test connections
1297 * tests; validate db contents
1298 * tests; remove .only
1299 * tests; close some test connections
1300 * tests; validate db contents
1301 * tests; remove .only
1302 * tests; replace deprecated method names
1303 * tests; convert id to string
1304 * tests; fix sharding tests for MongoDB 2.4.5
1305 * tests; now 4-5 seconds faster
1306 * tests; fix race condition
1307 * make; suppress warning msg in test
1308 * benchmarks; updated for pull requests
1309 * examples; improved and expanded [ebensing](https://github.com/ebensing)
1310
13113.7.4 (unstable) / 2013-10-01
1312=============================
1313
1314 * updated; mquery to 0.3.2
1315 * removed; mongoose.Error.DocumentError (never used)
1316 * added; custom error msgs for built-in validators #747
1317 * added; discriminator support #1647 #1003 [j](https://github.com/j)
1318 * added; support disabled collection name pluralization #1350 #1707 [refack](https://github.com/refack)
1319 * fixed; do not pluralize model names not ending with letters #1703 [refack](https://github.com/refack)
1320 * fixed; repopulating modified populated paths #1697
1321 * fixed; doc.equals() when _id option is set to false #1687
1322 * fixed; strict mode warnings #1686
1323 * fixed; $near GeoJSON casting #1683
1324 * fixed; nearSphere GeoJSON query builder
1325 * fixed; population field selection w/ strings #1669
1326 * docs; custom validator messages
1327 * docs; 10gen -> MongoDB
1328 * docs; add Date method caveats #1598
1329 * docs; more validation details
1330 * website; add "show code" for properties
1331 * website; move "show code" links down
1332 * tests; refactor 1703
1333 * tests; add test generator
1334 * tests; validate formatMessage() throws
1335
13363.7.3 (unstable) / 2013-08-22
1337=============================
1338
1339  * updated; warn when using an unstable version
1340  * updated; mquery to 0.3.1
1341  * updated; mocha to 1.12.0
1342  * updated; mongodb driver to 1.3.19 (fix error swallowing behavior)
1343  * changed; no longer offically supporting node 0.6.x
1344  * added; support for GeoJSON to Query#near [ebensing](https://github.com/ebensing)
1345  * added; stand-alone base query support - query.toConstructor() [ebensing](https://github.com/ebensing)
1346  * added; promise support to geoSearch #1614 [ebensing](https://github.com/ebensing)
1347  * added; promise support for geoNear #1614 [ebensing](https://github.com/ebensing)
1348  * fixed; setters not firing on null values #1445 [ebensing](https://github.com/ebensing)
1349  * fixed; handle another versioning edge case #1520
1350  * fixed; excluding subdocument fields #1280 [ebensing](https://github.com/ebensing)
1351  * fixed; allow array properties to be set to null with findOneAndUpdate [aheuermann](https://github.com/aheuermann)
1352  * fixed; subdocuments now use own toJSON opts #1376 [ebensing](https://github.com/ebensing)
1353  * fixed; model#geoNear fulfills promise when results empty #1658 [ebensing](https://github.com/ebensing)
1354  * fixed; utils.merge no longer overrides props and methods #1655 [j](https://github.com/j)
1355  * fixed; subdocuments now use their own transform #1412 [ebensing](https://github.com/ebensing)
1356  * make; suppress warning msg in test
1357  * docs; state which branch is stable/unstable
1358  * docs; mention that middleware does not run on Models
1359  * tests; add script for continuously running tests
1360  * tests; fixed versioning tests
1361  * benchmarks; updated for pull requests
1362
13633.7.2 (unstable) / 2013-08-15
1364==================
1365
1366  * fixed; model.remove() removes only what is necessary #1649
1367  * fixed; update() now only runs with cb or explicit true #1644
1368  * tests; race conditions in tests
1369  * website; update guide
1370
13713.7.1 (unstable) / 2013-08-13
1372=============================
1373
1374  * updated; driver to 1.3.18 (fixes memory leak)
1375  * added; connection.useDb() #1124 [ebensing](https://github.com/ebensing)
1376  * added; promise support to model.mapReduce()
1377  * added; promise support to model.ensureIndexes()
1378  * added; promise support to model.populate()
1379  * fixed; casting ref docs on creation #1606 [ebensing](https://github.com/ebensing)
1380  * fixed; model.update "overwrite" option works as documented
1381  * fixed; query#remove() works as documented
1382  * fixed; "limit" correctly applies to individual items on population #1490 [ebensing](https://github.com/ebensing)
1383  * fixed; issue with positional operator on ref docs #1572 [ebensing](https://github.com/ebensing)
1384  * fixed; benchmarks to actually output valid json
1385  * tests; added for nested and/or queries
1386  * tests; close some test connections
1387  * tests; validate db contents
1388  * tests; remove .only
1389  * tests; close some test connections
1390  * tests; validate db contents
1391  * tests; remove .only
1392  * tests; replace deprecated method names
1393  * tests; convert id to string
1394  * docs; promise.fulfill()
1395
13963.7.0 (unstable) / 2013-08-05
1397===================
1398
1399  * changed; query.within getter is now a method -> query.within()
1400  * changed; query.intersects getter is now a method -> query.intersects()
1401  * deprecated; promise#addBack (use promise#onResolve)
1402  * deprecated; promise#complete (use promise#fulfill)
1403  * deprecated; promise#addCallback (use promise#onFulFill)
1404  * deprecated; promise#addErrback (use promise#onReject)
1405  * deprecated; query.nearSphere() (use query.near)
1406  * deprecated; query.center() (use query.circle)
1407  * deprecated; query.centerSphere() (use query.circle)
1408  * deprecated; query#slaveOk (use query#read)
1409  * removed; namedscope (undocumented and broken) #679 #642 #455 #379
1410  * added; benchmarks [ebensing](https://github.com/ebensing)
1411  * added; publicly exposed connection states #1585
1412  * added; $geoWithin support #1529 $1455 [ebensing](https://github.com/ebensing)
1413  * added; query method chain validation
1414  * added; model.update `overwrite` option
1415  * added; model.geoNear() support #1563 [ebensing](https://github.com/ebensing)
1416  * added; model.geoSearch() support #1560 [ebensing](https://github.com/ebensing)
1417  * added; MongooseBuffer#subtype()
1418  * added; model.create() now returns a promise #1340
1419  * added; support for `awaitdata` query option
1420  * added; pass the doc to doc.remove() callback #1419 [JoeWagner](https://github.com/JoeWagner)
1421  * added; aggregation query builder #1404 [njoyard](https://github.com/njoyard)
1422  * updated; integrate mquery #1562 [ebensing](https://github.com/ebensing)
1423  * updated; error msg in doc.save() #1595
1424  * updated; bump driver to 1.3.15
1425  * updated; mpromise 0.3.0
1426  * updated; sliced 0.0.5
1427  * tests; fix sharding tests for MongoDB 2.4.5
1428  * tests; now 4-5 seconds faster
1429  * tests; fix race condition
1430  * docs; fix readme spelling #1483 [yorchopolis](https://github.com/yorchopolis)
1431  * docs; fixed up the README and examples [ebensing](https://github.com/ebensing)
1432  * website; add unstable docs
1433  * website; many improvements
1434  * website; fix copyright #1439
1435  * website; server.js -> static.js #1546 [nikmartin](https://github.com/nikmartin)
1436  * examples; improved and expanded [ebensing](https://github.com/ebensing)
1437
14383.6.20 (stable) / 2013-09-23
1439===================
1440
1441 * fixed; repopulating modified populated paths #1697
1442 * fixed; doc.equals w/ _id false #1687
1443 * fixed; strict mode warning #1686
1444 * docs; near/nearSphere
1445
14463.6.19 (stable) / 2013-09-04
1447==================
1448
1449  * fixed; population field selection w/ strings #1669
1450  * docs; Date method caveats #1598
1451
14523.6.18 (stable) / 2013-08-22
1453===================
1454
1455  * updated; warn when using an unstable version of mongoose
1456  * updated; mocha to 1.12.0
1457  * updated; mongodb driver to 1.3.19 (fix error swallowing behavior)
1458  * fixed; setters not firing on null values #1445 [ebensing](https://github.com/ebensing)
1459  * fixed; properly exclude subdocument fields #1280 [ebensing](https://github.com/ebensing)
1460  * fixed; cast error in findAndModify #1643 [aheuermann](https://github.com/aheuermann)
1461  * website; update guide
1462  * website; added documentation for safe:false and versioning interaction
1463  * docs; mention that middleware dont run on Models
1464  * docs; fix indexes link
1465  * make; suppress warning msg in test
1466  * tests; moar
1467
14683.6.17 / 2013-08-13
1469===================
1470
1471  * updated; driver to 1.3.18 (fixes memory leak)
1472  * fixed; casting ref docs on creation #1606
1473  * docs; query options
1474
14753.6.16 / 2013-08-08
1476===================
1477
1478  * added; publicly expose connection states #1585
1479  * fixed; limit applies to individual items on population #1490 [ebensing](https://github.com/ebensing)
1480  * fixed; positional operator casting in updates #1572 [ebensing](https://github.com/ebensing)
1481  * updated; MongoDB driver to 1.3.17
1482  * updated; sliced to 0.0.5
1483  * website; tweak homepage
1484  * tests; fixed + added
1485  * docs; fix some examples
1486  * docs; multi-mongos support details
1487  * docs; auto open browser after starting static server
1488
14893.6.15 / 2013-07-16
1490==================
1491
1492  * added; mongos failover support #1037
1493  * updated; make schematype return vals return self #1580
1494  * docs; add note to model.update #571
1495  * docs; document third param to document.save callback #1536
1496  * tests; tweek mongos test timeout
1497
14983.6.14 / 2013-07-05
1499===================
1500
1501  * updated; driver to 1.3.11
1502  * fixed; issue with findOneAndUpdate not returning null on upserts #1533 [ebensing](https://github.com/ebensing)
1503  * fixed; missing return statement in SchemaArray#$geoIntersects() #1498 [bsrykt](https://github.com/bsrykt)
1504  * fixed; wrong isSelected() behavior #1521 [kyano](https://github.com/kyano)
1505  * docs; note about toObject behavior during save()
1506  * docs; add callbacks details #1547 [nikmartin](https://github.com/nikmartin)
1507
15083.6.13 / 2013-06-27
1509===================
1510
1511  * fixed; calling model.distinct without conditions #1541
1512  * fixed; regression in Query#count() #1542
1513  * now working on 3.6.13
1514
15153.6.12 / 2013-06-25
1516===================
1517
1518  * updated; driver to 1.3.10
1519  * updated; clearer capped collection error message #1509 [bitmage](https://github.com/bitmage)
1520  * fixed; MongooseBuffer subtype loss during casting #1517 [zedgu](https://github.com/zedgu)
1521  * fixed; docArray#id when doc.id is disabled #1492
1522  * fixed; docArray#id now supports matches on populated arrays #1492 [pgherveou](https://github.com/pgherveou)
1523  * website; fix example
1524  * website; improve _id disabling example
1525  * website; fix typo #1494 [dejj](https://github.com/dejj)
1526  * docs; added a 'Requesting new features' section #1504 [shovon](https://github.com/shovon)
1527  * docs; improve subtypes description
1528  * docs; clarify _id disabling
1529  * docs: display by alphabetical order the methods list #1508 [nicolasleger](https://github.com/nicolasleger)
1530  * tests; refactor isSelected checks
1531  * tests; remove pointless test
1532  * tests; fixed timeouts
1533
15343.6.11 / 2013-05-15
1535===================
1536
1537  * updated; driver to 1.3.5
1538  * fixed; compat w/ Object.create(null) #1484 #1485
1539  * fixed; cloning objects w/ missing constructors
1540  * fixed; prevent multiple min number validators #1481 [nrako](https://github.com/nrako)
1541  * docs; add doc.increment() example
1542  * docs; add $size example
1543  * docs; add "distinct" example
1544
15453.6.10 / 2013-05-09
1546==================
1547
1548  * update driver to 1.3.3
1549  * fixed; increment() works without other changes #1475
1550  * website; fix links to posterous
1551  * docs; fix link #1472
1552
15533.6.9 / 2013-05-02
1554==================
1555
1556  * fixed; depopulation of mixed documents #1471
1557  * fixed; use of $options in array #1462
1558  * tests; fix race condition
1559  * docs; fix default example
1560
15613.6.8 / 2013-04-25
1562==================
1563
1564  * updated; driver to 1.3.0
1565  * fixed; connection.model should retain options #1458 [vedmalex](https://github.com/vedmalex)
1566  * tests; 4-5 seconds faster
1567
15683.6.7 / 2013-04-19
1569==================
1570
1571  * fixed; population regression in 3.6.6 #1444
1572
15733.6.6 / 2013-04-18
1574==================
1575
1576  * fixed; saving populated new documents #1442
1577  * fixed; population regession in 3.6.5 #1441
1578  * website; fix copyright #1439
1579
15803.6.5 / 2013-04-15
1581==================
1582
1583  * fixed; strict:throw edge case using .set(path, val)
1584  * fixed; schema.pathType() on some numbericAlpha paths
1585  * fixed; numbericAlpha path versioning
1586  * fixed; setting nested mixed paths #1418
1587  * fixed; setting nested objects with null prop #1326
1588  * fixed; regression in v3.6 population performance #1426 [vedmalex](https://github.com/vedmalex)
1589  * fixed; read pref typos #1422 [kyano](https://github.com/kyano)
1590  * docs; fix method example
1591  * website; update faq
1592  * website; add more deep links
1593  * website; update poolSize docs
1594  * website; add 3.6 release notes
1595  * website; note about keepAlive
1596
15973.6.4 / 2013-04-03
1598==================
1599
1600  * fixed; +field conflict with $slice #1370
1601  * fixed; nested deselection conflict #1333
1602  * fixed; RangeError in ValidationError.toString() #1296
1603  * fixed; do not save user defined transforms #1415
1604  * tests; fix race condition
1605
16063.6.3 / 2013-04-02
1607==================
1608
1609  * fixed; setting subdocuments deeply nested fields #1394
1610  * fixed; regression: populated streams #1411
1611  * docs; mention hooks/validation with findAndModify
1612  * docs; mention auth
1613  * docs; add more links
1614  * examples; add document methods example
1615  * website; display "see" links for properties
1616  * website; clean up homepage
1617
16183.6.2 / 2013-03-29
1619==================
1620
1621  * fixed; corrupted sub-doc array #1408
1622  * fixed; document#update returns a Query #1397
1623  * docs; readpref strategy
1624
16253.6.1 / 2013-03-27
1626==================
1627
1628  * added; populate support to findAndModify varients #1395
1629  * added; text index type to schematypes
1630  * expose allowed index types as Schema.indexTypes
1631  * fixed; use of `setMaxListeners` as path
1632  * fixed; regression in node 0.6 on docs with > 10 arrays
1633  * fixed; do not alter schema arguments #1364
1634  * fixed; subdoc#ownerDocument() #1385
1635  * website; change search id
1636  * website; add search from google [jackdbernier](https://github.com/jackdbernier)
1637  * website; fix link
1638  * website; add 3.5.x docs release
1639  * website; fix link
1640  * docs; fix geometry
1641  * docs; hide internal constructor
1642  * docs; aggregation does not cast arguments #1399
1643  * docs; querystream options
1644  * examples; added for population
1645
16463.6.0 / 2013-03-18
1647==================
1648
1649  * changed; cast 'true'/'false' to boolean #1282 [mgrach](https://github.com/mgrach)
1650  * changed; Buffer arrays can now contain nulls
1651  * added; QueryStream transform option
1652  * added; support for authSource driver option
1653  * added; {mongoose,db}.modelNames()
1654  * added; $push w/ $slice,$sort support (MongoDB 2.4)
1655  * added; hashed index type (MongoDB 2.4)
1656  * added; support for mongodb 2.4 geojson (MongoDB 2.4)
1657  * added; value at time of validation error
1658  * added; support for object literal schemas
1659  * added; bufferCommands schema option
1660  * added; allow auth option in connections #1360 [geoah](https://github.com/geoah)
1661  * added; performance improvements to populate() [263ece9](https://github.com/LearnBoost/mongoose/commit/263ece9)
1662  * added; allow adding uncasted docs to populated arrays and properties #570
1663  * added; doc#populated(path) stores original populated _ids
1664  * added; lean population #1260
1665  * added; query.populate() now accepts an options object
1666  * added; document#populate(opts, callback)
1667  * added; Model.populate(docs, opts, callback)
1668  * added; support for rich nested path population
1669  * added; doc.array.remove(value) subdoc with _id value support #1278
1670  * added; optionally allow non-strict sets and updates
1671  * added; promises/A+ comformancy with [mpromise](https://github.com/aheckmann/mpromise)
1672  * added; promise#then
1673  * added; promise#end
1674  * fixed; use of `model` as doc property
1675  * fixed; lean population #1382
1676  * fixed; empty object mixed defaults #1380
1677  * fixed; populate w/ deselected _id using string syntax
1678  * fixed; attempted save of divergent populated arrays #1334 related
1679  * fixed; better error msg when attempting toObject as property name
1680  * fixed; non population buffer casting from doc
1681  * fixed; setting populated paths #570
1682  * fixed; casting when added docs to populated arrays #570
1683  * fixed; prohibit updating arrays selected with $elemMatch #1334
1684  * fixed; pull / set subdoc combination #1303
1685  * fixed; multiple bg index creation #1365
1686  * fixed; manual reconnection to single mongod
1687  * fixed; Constructor / version exposure #1124
1688  * fixed; CastError race condition
1689  * fixed; no longer swallowing misuse of subdoc#invalidate()
1690  * fixed; utils.clone retains RegExp opts
1691  * fixed; population of non-schema property
1692  * fixed; allow updating versionKey #1265
1693  * fixed; add EventEmitter props to reserved paths #1338
1694  * fixed; can now deselect populated doc _ids #1331
1695  * fixed; properly pass subtype to Binary in MongooseBuffer
1696  * fixed; casting _id from document with non-ObjectId _id
1697  * fixed; specifying schema type edge case { path: [{type: "String" }] }
1698  * fixed; typo in schemdate #1329 [jplock](https://github.com/jplock)
1699  * updated; driver to 1.2.14
1700  * updated; muri to 0.3.1
1701  * updated; mpromise to 0.2.1
1702  * updated; mocha 1.8.1
1703  * updated; mpath to 0.1.1
1704  * deprecated; pluralization will die in 4.x
1705  * refactor; rename private methods to something unusable as doc properties
1706  * refactor MongooseArray#remove
1707  * refactor; move expires index to SchemaDate #1328
1708  * refactor; internal document properties #1171 #1184
1709  * tests; added
1710  * docs; indexes
1711  * docs; validation
1712  * docs; populate
1713  * docs; populate
1714  * docs; add note about stream compatibility with node 0.8
1715  * docs; fix for private names
1716  * docs; Buffer -> mongodb.Binary #1363
1717  * docs; auth options
1718  * docs; improved
1719  * website; update FAQ
1720  * website; add more api links
1721  * website; add 3.5.x docs to prior releases
1722  * website; Change mongoose-types to an active repo [jackdbernier](https://github.com/jackdbernier)
1723  * website; compat with node 0.10
1724  * website; add news section
1725  * website; use T for generic type
1726  * benchmark; make adjustable
1727
17283.6.0rc1 / 2013-03-12
1729======================
1730
1731  * refactor; rename private methods to something unusable as doc properties
1732  * added; {mongoose,db}.modelNames()
1733  * added; $push w/ $slice,$sort support (MongoDB 2.4)
1734  * added; hashed index type (MongoDB 2.4)
1735  * added; support for mongodb 2.4 geojson (MongoDB 2.4)
1736  * added; value at time of validation error
1737  * added; support for object literal schemas
1738  * added; bufferCommands schema option
1739  * added; allow auth option in connections #1360 [geoah](https://github.com/geoah)
1740  * fixed; lean population #1382
1741  * fixed; empty object mixed defaults #1380
1742  * fixed; populate w/ deselected _id using string syntax
1743  * fixed; attempted save of divergent populated arrays #1334 related
1744  * fixed; better error msg when attempting toObject as property name
1745  * fixed; non population buffer casting from doc
1746  * fixed; setting populated paths #570
1747  * fixed; casting when added docs to populated arrays #570
1748  * fixed; prohibit updating arrays selected with $elemMatch #1334
1749  * fixed; pull / set subdoc combination #1303
1750  * fixed; multiple bg index creation #1365
1751  * fixed; manual reconnection to single mongod
1752  * fixed; Constructor / version exposure #1124
1753  * fixed; CastError race condition
1754  * fixed; no longer swallowing misuse of subdoc#invalidate()
1755  * fixed; utils.clone retains RegExp opts
1756  * fixed; population of non-schema property
1757  * fixed; allow updating versionKey #1265
1758  * fixed; add EventEmitter props to reserved paths #1338
1759  * fixed; can now deselect populated doc _ids #1331
1760  * updated; muri to 0.3.1
1761  * updated; driver to 1.2.12
1762  * updated; mpromise to 0.2.1
1763  * deprecated; pluralization will die in 4.x
1764  * docs; Buffer -> mongodb.Binary #1363
1765  * docs; auth options
1766  * docs; improved
1767  * website; add news section
1768  * benchmark; make adjustable
1769
17703.6.0rc0 / 2013-02-03
1771======================
1772
1773  * changed; cast 'true'/'false' to boolean #1282 [mgrach](https://github.com/mgrach)
1774  * changed; Buffer arrays can now contain nulls
1775  * fixed; properly pass subtype to Binary in MongooseBuffer
1776  * fixed; casting _id from document with non-ObjectId _id
1777  * fixed; specifying schema type edge case { path: [{type: "String" }] }
1778  * fixed; typo in schemdate #1329 [jplock](https://github.com/jplock)
1779  * refactor; move expires index to SchemaDate #1328
1780  * refactor; internal document properties #1171 #1184
1781  * added; performance improvements to populate() [263ece9](https://github.com/LearnBoost/mongoose/commit/263ece9)
1782  * added; allow adding uncasted docs to populated arrays and properties #570
1783  * added; doc#populated(path) stores original populated _ids
1784  * added; lean population #1260
1785  * added; query.populate() now accepts an options object
1786  * added; document#populate(opts, callback)
1787  * added; Model.populate(docs, opts, callback)
1788  * added; support for rich nested path population
1789  * added; doc.array.remove(value) subdoc with _id value support #1278
1790  * added; optionally allow non-strict sets and updates
1791  * added; promises/A+ comformancy with [mpromise](https://github.com/aheckmann/mpromise)
1792  * added; promise#then
1793  * added; promise#end
1794  * updated; mocha 1.8.1
1795  * updated; muri to 0.3.0
1796  * updated; mpath to 0.1.1
1797  * updated; docs
1798
17993.5.16 / 2013-08-13
1800===================
1801
1802  * updated; driver to 1.3.18
1803
18043.5.15 / 2013-07-26
1805==================
1806
1807  * updated; sliced to 0.0.5
1808  * updated; driver to 1.3.12
1809  * fixed; regression in Query#count() due to driver change
1810  * tests; fixed timeouts
1811  * tests; handle differing test uris
1812
18133.5.14 / 2013-05-15
1814===================
1815
1816  * updated; driver to 1.3.5
1817  * fixed; compat w/ Object.create(null) #1484 #1485
1818  * fixed; cloning objects missing constructors
1819  * fixed; prevent multiple min number validators #1481 [nrako](https://github.com/nrako)
1820
18213.5.13 / 2013-05-09
1822==================
1823
1824  * update driver to 1.3.3
1825  * fixed; use of $options in array #1462
1826
18273.5.12 / 2013-04-25
1828===================
1829
1830  * updated; driver to 1.3.0
1831  * fixed; connection.model should retain options #1458 [vedmalex](https://github.com/vedmalex)
1832  * fixed; read pref typos #1422 [kyano](https://github.com/kyano)
1833
18343.5.11 / 2013-04-03
1835==================
1836
1837  * fixed; +field conflict with $slice #1370
1838  * fixed; RangeError in ValidationError.toString() #1296
1839  * fixed; nested deselection conflict #1333
1840  * remove time from Makefile
1841
18423.5.10 / 2013-04-02
1843==================
1844
1845  * fixed; setting subdocuments deeply nested fields #1394
1846  * fixed; do not alter schema arguments #1364
1847
18483.5.9 / 2013-03-15
1849==================
1850
1851  * updated; driver to 1.2.14
1852  * added; support for authSource driver option (mongodb 2.4)
1853  * added; QueryStream transform option (node 0.10 helper)
1854  * fixed; backport for saving required populated buffers
1855  * fixed; pull / set subdoc combination #1303
1856  * fixed; multiple bg index creation #1365
1857  * test; added for saveable required populated buffers
1858  * test; added for #1365
1859  * test; add authSource test
1860
18613.5.8 / 2013-03-12
1862==================
1863
1864  * added; auth option in connection [geoah](https://github.com/geoah)
1865  * fixed; CastError race condition
1866  * docs; add note about stream compatibility with node 0.8
1867
18683.5.7 / 2013-02-22
1869==================
1870
1871  * updated; driver to 1.2.13
1872  * updated; muri to 0.3.1 #1347
1873  * fixed; utils.clone retains RegExp opts #1355
1874  * fixed; deepEquals RegExp support
1875  * tests; fix a connection test
1876  * website; clean up docs [afshinm](https://github.com/afshinm)
1877  * website; update homepage
1878  * website; migragtion: emphasize impact of strict docs #1264
1879
18803.5.6 / 2013-02-14
1881==================
1882
1883  * updated; driver to 1.2.12
1884  * fixed; properly pass Binary subtype
1885  * fixed; add EventEmitter props to reserved paths #1338
1886  * fixed; use correct node engine version
1887  * fixed; display empty docs as {} in log output #953 follow up
1888  * improved; "bad $within $box argument" error message
1889  * populate; add unscientific benchmark
1890  * website; add stack overflow to help section
1891  * website; use better code font #1336 [risseraka](https://github.com/risseraka)
1892  * website; clarify where help is available
1893  * website; fix source code links #1272 [floatingLomas](https://github.com/floatingLomas)
1894  * docs; be specific about _id schema option #1103
1895  * docs; add ensureIndex error handling example
1896  * docs; README
1897  * docs; CONTRIBUTING.md
1898
18993.5.5 / 2013-01-29
1900==================
1901
1902  * updated; driver to 1.2.11
1903  * removed; old node < 0.6x shims
1904  * fixed; documents with Buffer _ids equality
1905  * fixed; MongooseBuffer properly casts numbers
1906  * fixed; reopening closed connection on alt host/port #1287
1907  * docs; fixed typo in Readme #1298 [rened](https://github.com/rened)
1908  * docs; fixed typo in migration docs [Prinzhorn](https://github.com/Prinzhorn)
1909  * docs; fixed incorrect annotation in SchemaNumber#min [bilalq](https://github.com/bilalq)
1910  * docs; updated
1911
19123.5.4 / 2013-01-07
1913==================
1914
1915  * changed; "_pres" & "_posts" are now reserved pathnames #1261
1916  * updated; driver to 1.2.8
1917  * fixed; exception when reopening a replica set. #1263 [ethankan](https://github.com/ethankan)
1918  * website; updated
1919
19203.5.3 / 2012-12-26
1921==================
1922
1923  * added; support for geo object notation #1257
1924  * fixed; $within query casting with arrays
1925  * fixed; unix domain socket support #1254
1926  * updated; driver to 1.2.7
1927  * updated; muri to 0.0.5
1928
19293.5.2 / 2012-12-17
1930==================
1931
1932  * fixed; using auth with replica sets #1253
1933
19343.5.1 / 2012-12-12
1935==================
1936
1937  * fixed; regression when using subdoc with `path` as pathname #1245 [daeq](https://github.com/daeq)
1938  * fixed; safer db option checks
1939  * updated; driver to 1.2.5
1940  * website; add more examples
1941  * website; clean up old docs
1942  * website; fix prev release urls
1943  * docs; clarify streaming with HTTP responses
1944
19453.5.0 / 2012-12-10
1946==================
1947
1948  * added; paths to CastErrors #1239
1949  * added; support for mongodb connection string spec #1187
1950  * added; post validate event
1951  * added; Schema#get (to retrieve schema options)
1952  * added; VersionError #1071
1953  * added; npmignore [hidekiy](https://github.com/hidekiy)
1954  * update; driver to 1.2.3
1955  * fixed; stackoverflow in setter #1234
1956  * fixed; utils.isObject()
1957  * fixed; do not clobber user specified driver writeConcern #1227
1958  * fixed; always pass current document to post hooks
1959  * fixed; throw error when user attempts to overwrite a model
1960  * fixed; connection.model only caches on connection #1209
1961  * fixed; respect conn.model() creation when matching global model exists #1209
1962  * fixed; passing model name + collection name now always honors collection name
1963  * fixed; setting virtual field to an empty object #1154
1964  * fixed; subclassed MongooseErrors exposure, now available in mongoose.Error.xxxx
1965  * fixed; model.remove() ignoring callback when executed twice [daeq](https://github.com/daeq) #1210
1966  * docs; add collection option to schema api docs #1222
1967  * docs; NOTE about db safe options
1968  * docs; add post hooks docs
1969  * docs; connection string options
1970  * docs; middleware is not executed with Model.remove #1241
1971  * docs; {g,s}etter introspection #777
1972  * docs; update validation docs
1973  * docs; add link to plugins page
1974  * docs; clarify error returned by unique indexes #1225
1975  * docs; more detail about disabling autoIndex behavior
1976  * docs; add homepage section to package (npm docs mongoose)
1977  * docs; more detail around collection name pluralization #1193
1978  * website; add .important css
1979  * website; update models page
1980  * website; update getting started
1981  * website; update quick start
1982
19833.4.0 / 2012-11-10
1984==================
1985
1986  * added; support for generic toJSON/toObject transforms #1160 #1020 #1197
1987  * added; doc.set() merge support #1148 [NuORDER](https://github.com/NuORDER)
1988  * added; query#add support #1188 [aleclofabbro](https://github.com/aleclofabbro)
1989  * changed; adding invalid nested paths to non-objects throws 4216f14
1990  * changed; fixed; stop invalid function cloning (internal fix)
1991  * fixed; add query $and casting support #1180 [anotheri](https://github.com/anotheri)
1992  * fixed; overwriting of query arguments #1176
1993  * docs; fix expires examples
1994  * docs; transforms
1995  * docs; schema `collection` option docs [hermanjunge](https://github.com/hermanjunge)
1996  * website; updated
1997  * tests; added
1998
19993.3.1 / 2012-10-11
2000==================
2001
2002  * fixed; allow goose.connect(uris, dbname, opts) #1144
2003  * docs; persist API private checked state across page loads
2004
20053.3.0 / 2012-10-10
2006==================
2007
2008  * fixed; passing options as 2nd arg to connect() #1144
2009  * fixed; race condition after no-op save #1139
2010  * fixed; schema field selection application in findAndModify #1150
2011  * fixed; directly setting arrays #1126
2012  * updated; driver to 1.1.11
2013  * updated; collection pluralization rules [mrickard](https://github.com/mrickard)
2014  * tests; added
2015  * docs; updated
2016
20173.2.2 / 2012-10-08
2018==================
2019
2020  * updated; driver to 1.1.10 #1143
2021  * updated; use sliced 0.0.3
2022  * fixed; do not recast embedded docs unnecessarily
2023  * fixed; expires schema option helper #1132
2024  * fixed; built in string setters #1131
2025  * fixed; debug output for Dates/ObjectId properties #1129
2026  * docs; fixed Javascript syntax error in example [olalonde](https://github.com/olalonde)
2027  * docs; fix toJSON example #1137
2028  * docs; add ensureIndex production notes
2029  * docs; fix spelling
2030  * docs; add blogposts about v3
2031  * website; updated
2032  * removed; undocumented inGroupsOf util
2033  * tests; added
2034
20353.2.1 / 2012-09-28
2036==================
2037
2038  * fixed; remove query batchSize option default of 1000 https://github.com/learnboost/mongoose/commit/3edaa8651
2039  * docs; updated
2040  * website; updated
2041
20423.2.0 / 2012-09-27
2043==================
2044
2045  * added; direct array index assignment with casting support `doc.array.set(index, value)`
2046  * fixed; QueryStream#resume within same tick as pause() #1116
2047  * fixed; default value validatation #1109
2048  * fixed; array splice() not casting #1123
2049  * fixed; default array construction edge case #1108
2050  * fixed; query casting for inequalities in arrays #1101 [dpatti](https://github.com/dpatti)
2051  * tests; added
2052  * website; more documentation
2053  * website; fixed layout issue #1111 [SlashmanX](https://github.com/SlashmanX)
2054  * website; refactored [guille](https://github.com/guille)
2055
20563.1.2 / 2012-09-10
2057==================
2058
2059  * added; ReadPreferrence schema option #1097
2060  * updated; driver to 1.1.7
2061  * updated; default query batchSize to 1000
2062  * fixed; we now cast the mapReduce query option #1095
2063  * fixed; $elemMatch+$in with field selection #1091
2064  * fixed; properly cast $elemMatch+$in conditions #1100
2065  * fixed; default field application of subdocs #1027
2066  * fixed; querystream prematurely dying #1092
2067  * fixed; querystream never resumes when paused at getMore boundries #1092
2068  * fixed; querystream occasionally emits data events after destroy #1092
2069  * fixed; remove unnecessary ObjectId creation in querystream
2070  * fixed; allow ne(boolean) again #1093
2071  * docs; add populate/field selection syntax notes
2072  * docs; add toObject/toJSON options detail
2073  * docs; `read` schema option
2074
20753.1.1 / 2012-08-31
2076==================
2077
2078  * updated; driver to 1.1.6
2079
20803.1.0 / 2012-08-29
2081==================
2082
2083  * changed; fixed; directly setting nested objects now overwrites entire object (previously incorrectly merged them)
2084  * added; read pref support (mongodb 2.2) 205a709c
2085  * added; aggregate support (mongodb 2.2) f3a5bd3d
2086  * added; virtual {g,s}etter introspection (#1070)
2087  * updated; docs [brettz9](https://github.com/brettz9)
2088  * updated; driver to 1.1.5
2089  * fixed; retain virtual setter return values (#1069)
2090
20913.0.3 / 2012-08-23
2092==================
2093
2094  * fixed; use of nested paths beginning w/ numbers #1062
2095  * fixed; query population edge case #1053 #1055 [jfremy](https://github.com/jfremy)
2096  * fixed; simultaneous top and sub level array modifications #1073
2097  * added; id and _id schema option aliases + tests
2098  * improve debug formatting to allow copy/paste logged queries into mongo shell [eknkc](https://github.com/eknkc)
2099  * docs
2100
21013.0.2 / 2012-08-17
2102==================
2103
2104  * added; missing support for v3 sort/select syntax to findAndModify helpers (#1058)
2105  * fixed; replset fullsetup event emission
2106  * fixed; reconnected event for replsets
2107  * fixed; server reconnection setting discovery
2108  * fixed; compat with non-schema path props using positional notation (#1048)
2109  * fixed; setter/casting order (#665)
2110  * docs; updated
2111
21123.0.1 / 2012-08-11
2113==================
2114
2115  * fixed; throw Error on bad validators (1044)
2116  * fixed; typo in EmbeddedDocument#parentArray [lackac]
2117  * fixed; repair mongoose.SchemaTypes alias
2118  * updated; docs
2119
21203.0.0 / 2012-08-07
2121==================
2122
2123  * removed; old subdocument#commit method
2124  * fixed; setting arrays of matching docs [6924cbc2]
2125  * fixed; doc!remove event now emits in save order as save for consistency
2126  * fixed; pre-save hooks no longer fire on subdocuments when validation fails
2127  * added; subdoc#parent() and subdoc#parentArray() to access subdocument parent objects
2128  * added; query#lean() helper
2129
21303.0.0rc0 / 2012-08-01
2131=====================
2132
2133  * fixed; allow subdoc literal declarations containing "type" pathname (#993)
2134  * fixed; unsetting a default array (#758)
2135  * fixed; boolean $in queries (#998)
2136  * fixed; allow use of `options` as a pathname (#529)
2137  * fixed; `model` is again a permitted schema path name
2138  * fixed; field selection option on subdocs (#1022)
2139  * fixed; handle another edge case with subdoc saving (#975)
2140  * added; emit save err on model if listening
2141  * added; MongoDB TTL collection support (#1006)
2142  * added; $center options support
2143  * added; $nearSphere and $polygon support
2144  * updated; driver version to 1.1.2
2145
21463.0.0alpha2 / 2012-07-18
2147=========================
2148
2149  * changed; index errors are now emitted on their model and passed to an optional callback (#984)
2150  * fixed; specifying index along with sparse/unique option no longer overwrites (#1004)
2151  * fixed; never swallow connection errors (#618)
2152  * fixed; creating object from model with emded object no longer overwrites defaults [achurkin] (#859)
2153  * fixed; stop needless validation of unchanged/unselected fields (#891)
2154  * fixed; document#equals behavior of objectids (#974)
2155  * fixed; honor the minimize schema option (#978)
2156  * fixed; provide helpful error msgs when reserved schema path is used (#928)
2157  * fixed; callback to conn#disconnect is optional (#875)
2158  * fixed; handle missing protocols in connection urls (#987)
2159  * fixed; validate args to query#where (#969)
2160  * fixed; saving modified/removed subdocs (#975)
2161  * fixed; update with $pull from Mixed array (#735)
2162  * fixed; error with null shard key value
2163  * fixed; allow unsetting enums (#967)
2164  * added; support for manual index creation (#984)
2165  * added; support for disabled auto-indexing (#984)
2166  * added; support for preserving MongooseArray#sort changes (#752)
2167  * added; emit state change events on connection
2168  * added; support for specifying BSON subtype in MongooseBuffer#toObject [jcrugzz]
2169  * added; support for disabled versioning (#977)
2170  * added; implicit "new" support for models and Schemas
2171
21723.0.0alpha1 / 2012-06-15
2173=========================
2174
2175  * removed; doc#commit (use doc#markModified)
2176  * removed; doc.modified getter (#950)
2177  * removed; mongoose{connectSet,createSetConnection}. use connect,createConnection instead
2178  * removed; query alias methods 1149804c
2179  * removed; MongooseNumber
2180  * changed; now creating indexes in background by default
2181  * changed; strict mode now enabled by default (#952)
2182  * changed; doc#modifiedPaths is now a method (#950)
2183  * changed; getters no longer cast (#820); casting happens during set
2184  * fixed; no need to pass updateArg to findOneAndUpdate (#931)
2185  * fixed: utils.merge bug when merging nested non-objects. [treygriffith]
2186  * fixed; strict:throw should produce errors in findAndModify (#963)
2187  * fixed; findAndUpdate no longer overwrites document (#962)
2188  * fixed; setting default DocumentArrays (#953)
2189  * fixed; selection of _id with schema deselection (#954)
2190  * fixed; ensure promise#error emits instanceof Error
2191  * fixed; CursorStream: No stack overflow on any size result (#929)
2192  * fixed; doc#remove now passes safe options
2193  * fixed; invalid use of $set during $pop
2194  * fixed; array#{$pop,$shift} mirror MongoDB behavior
2195  * fixed; no longer test non-required vals in string match (#934)
2196  * fixed; edge case with doc#inspect
2197  * fixed; setter order (#665)
2198  * fixed; setting invalid paths in strict mode (#916)
2199  * fixed; handle docs without id in DocumentArray#id method (#897)
2200  * fixed; do not save virtuals during model.update (#894)
2201  * fixed; sub doc toObject virtuals application (#889)
2202  * fixed; MongooseArray#pull of ObjectId (#881)
2203  * fixed; handle passing db name with any repl set string
2204  * fixed; default application of selected fields (#870)
2205  * fixed; subdoc paths reported in validation errors (#725)
2206  * fixed; incorrect reported num of affected docs in update ops (#862)
2207  * fixed; connection assignment in Model#model (#853)
2208  * fixed; stringifying arrays of docs (#852)
2209  * fixed; modifying subdoc and parent array works (#842)
2210  * fixed; passing undefined to next hook (#785)
2211  * fixed; Query#{update,remove}() works without callbacks (#788)
2212  * fixed; set/updating nested objects by parent pathname (#843)
2213  * fixed; allow null in number arrays (#840)
2214  * fixed; isNew on sub doc after insertion error (#837)
2215  * fixed; if an insert fails, set isNew back to false [boutell]
2216  * fixed; isSelected when only _id is selected (#730)
2217  * fixed; setting an unset default value (#742)
2218  * fixed; query#sort error messaging (#671)
2219  * fixed; support for passing $options with $regex
2220  * added; array of object literal notation in schema creates DocumentArrays
2221  * added; gt,gte,lt,lte query support for arrays (#902)
2222  * added; capped collection support (#938)
2223  * added; document versioning support
2224  * added; inclusion of deselected schema path (#786)
2225  * added; non-atomic array#pop
2226  * added; EmbeddedDocument constructor is now exposed in DocArray#create 7cf8beec
2227  * added; mapReduce support (#678)
2228  * added; support for a configurable minimize option #to{Object,JSON}(option) (#848)
2229  * added; support for strict: `throws` [regality]
2230  * added; support for named schema types (#795)
2231  * added; to{Object,JSON} schema options (#805)
2232  * added; findByIdAnd{Update,Remove}()
2233  * added; findOneAnd{Update,Remove}()
2234  * added; query.setOptions()
2235  * added; instance.update() (#794)
2236  * added; support specifying model in populate() [DanielBaulig]
2237  * added; `lean` query option [gitfy]
2238  * added; multi-atomic support to MongooseArray#nonAtomicPush
2239  * added; support for $set + other $atomic ops on single array
2240  * added; tests
2241  * updated; driver to 1.0.2
2242  * updated; query.sort() syntax to mirror query.select()
2243  * updated; clearer cast error msg for array numbers
2244  * updated; docs
2245  * updated; doc.clone 3x faster (#950)
2246  * updated; only create _id if necessary (#950)
2247
22482.7.3 / 2012-08-01
2249==================
2250
2251  * fixed; boolean $in queries (#998)
2252  * fixed field selection option on subdocs (#1022)
2253
22542.7.2 / 2012-07-18
2255==================
2256
2257  * fixed; callback to conn#disconnect is optional (#875)
2258  * fixed; handle missing protocols in connection urls (#987)
2259  * fixed; saving modified/removed subdocs (#975)
2260  * updated; tests
2261
22622.7.1 / 2012-06-26
2263===================
2264
2265  * fixed; sharding: when a document holds a null as a value of the shard key
2266  * fixed; update() using $pull on an array of Mixed (gh-735)
2267  * deprecated; MongooseNumber#{inc, increment, decrement} methods
2268  * tests; now using mocha
2269
22702.7.0 / 2012-06-14
2271===================
2272
2273  * added; deprecation warnings to methods being removed in 3.x
2274
22752.6.8 / 2012-06-14
2276===================
2277
2278  * fixed; edge case when using 'options' as a path name (#961)
2279
22802.6.7 / 2012-06-08
2281===================
2282
2283  * fixed; ensure promise#error always emits instanceof Error
2284  * fixed; selection of _id w/ another excluded path (#954)
2285  * fixed; setting default DocumentArrays (#953)
2286
22872.6.6 / 2012-06-06
2288===================
2289
2290  * fixed; stack overflow in query stream with large result sets (#929)
2291  * added; $gt, $gte, $lt, $lte support to arrays (#902)
2292  * fixed; pass option `safe` along to doc#remove() calls
2293
22942.6.5 / 2012-05-24
2295===================
2296
2297  * fixed; do not save virtuals in Model.update (#894)
2298  * added; missing $ prefixed query aliases (going away in 3.x) (#884) [timoxley]
2299  * fixed; setting invalid paths in strict mode (#916)
2300  * fixed; resetting isNew after insert failure (#837) [boutell]
2301
23022.6.4 / 2012-05-15
2303===================
2304
2305  * updated; backport string regex $options to 2.x
2306  * updated; use driver 1.0.2 (performance improvements) (#914)
2307  * fixed; calling MongooseDocumentArray#id when the doc has no _id (#897)
2308
23092.6.3 / 2012-05-03
2310===================
2311
2312  * fixed; repl-set connectivity issues during failover on MongoDB 2.0.1
2313  * updated; driver to 1.0.0
2314  * fixed; virtuals application of subdocs when using toObject({ virtuals: true }) (#889)
2315  * fixed; MongooseArray#pull of ObjectId correctly updates the array itself (#881)
2316
23172.6.2 / 2012-04-30
2318===================
2319
2320  * fixed; default field application of selected fields (#870)
2321
23222.6.1 / 2012-04-30
2323===================
2324
2325  * fixed; connection assignment in mongoose#model (#853, #877)
2326  * fixed; incorrect reported num of affected docs in update ops (#862)
2327
23282.6.0 / 2012-04-19
2329===================
2330
2331  * updated; hooks.js to 0.2.1
2332  * fixed; issue with passing undefined to a hook callback. thanks to [chrisleishman] for reporting.
2333  * fixed; updating/setting nested objects in strict schemas (#843) as reported by [kof]
2334  * fixed; Query#{update,remove}() work without callbacks again (#788)
2335  * fixed; modifying subdoc along with parent array $atomic op (#842)
2336
23372.5.14 / 2012-04-13
2338===================
2339
2340  * fixed; setting an unset default value (#742)
2341  * fixed; doc.isSelected(otherpath) when only _id is selected (#730)
2342  * updated; docs
2343
23442.5.13 / 2012-03-22
2345===================
2346
2347  * fixed; failing validation of unselected required paths (#730,#713)
2348  * fixed; emitting connection error when only one listener (#759)
2349  * fixed; MongooseArray#splice was not returning values (#784) [chrisleishman]
2350
23512.5.12 / 2012-03-21
2352===================
2353
2354  * fixed; honor the `safe` option in all ensureIndex calls
2355  * updated; node-mongodb-native driver to 0.9.9-7
2356
23572.5.11 / 2012-03-15
2358===================
2359
2360  * added; introspection for getters/setters (#745)
2361  * updated; node-mongodb-driver to 0.9.9-5
2362  * added; tailable method to Query (#769) [holic]
2363  * fixed; Number min/max validation of null (#764) [btamas]
2364  * added; more flexible user/password connection options (#738) [KarneAsada]
2365
23662.5.10 / 2012-03-06
2367===================
2368
2369  * updated; node-mongodb-native driver to 0.9.9-4
2370  * added; Query#comment()
2371  * fixed; allow unsetting arrays
2372  * fixed; hooking the set method of subdocuments (#746)
2373  * fixed; edge case in hooks
2374  * fixed; allow $id and $ref in queries (fixes compatibility with mongoose-dbref) (#749) [richtera]
2375  * added; default path selection to SchemaTypes
2376
23772.5.9 / 2012-02-22
2378===================
2379
2380  * fixed; properly cast nested atomic update operators for sub-documents
2381
23822.5.8 / 2012-02-21
2383===================
2384
2385  * added; post 'remove' middleware includes model that was removed (#729) [timoxley]
2386
23872.5.7 / 2012-02-09
2388===================
2389
2390  * fixed; RegExp validators on node >= v0.6.x
2391
23922.5.6 / 2012-02-09
2393===================
2394
2395  * fixed; emit errors returned from db.collection() on the connection (were being swallowed)
2396  * added; can add multiple validators in your schema at once (#718) [diogogmt]
2397  * fixed; strict embedded documents (#717)
2398  * updated; docs [niemyjski]
2399  * added; pass number of affected docs back in model.update/save
2400
24012.5.5 / 2012-02-03
2402===================
2403
2404  * fixed; RangeError: maximum call stack exceed error when removing docs with Number _id (#714)
2405
24062.5.4 / 2012-02-03
2407===================
2408
2409  * fixed; RangeError: maximum call stack exceed error (#714)
2410
24112.5.3 / 2012-02-02
2412===================
2413
2414  * added; doc#isSelected(path)
2415  * added; query#equals()
2416  * added; beta sharding support
2417  * added; more descript error msgs (#700) [obeleh]
2418  * added; document.modifiedPaths (#709) [ljharb]
2419  * fixed; only functions can be added as getters/setters (#707,704) [ljharb]
2420
24212.5.2 / 2012-01-30
2422===================
2423
2424  * fixed; rollback -native driver to 0.9.7-3-5 (was causing timeouts and other replica set weirdness)
2425  * deprecated; MongooseNumber (will be moved to a separate repo for 3.x)
2426  * added; init event is emitted on schemas
2427
24282.5.1 / 2012-01-27
2429===================
2430
2431  * fixed; honor strict schemas in Model.update (#699)
2432
24332.5.0 / 2012-01-26
2434===================
2435
2436  * added; doc.toJSON calls toJSON on embedded docs when exists [jerem]
2437  * added; populate support for refs of type Buffer (#686) [jerem]
2438  * added; $all support for ObjectIds and Dates (#690)
2439  * fixed; virtual setter calling on instantiation when strict: true (#682) [hunterloftis]
2440  * fixed; doc construction triggering getters (#685)
2441  * fixed; MongooseBuffer check in deepEquals (#688)
2442  * fixed; range error when using Number _ids with `instance.save()` (#691)
2443  * fixed; isNew on embedded docs edge case (#680)
2444  * updated; driver to 0.9.8-3
2445  * updated; expose `model()` method within static methods
2446
24472.4.10 / 2012-01-10
2448===================
2449
2450  * added; optional getter application in .toObject()/.toJSON() (#412)
2451  * fixed; nested $operators in $all queries (#670)
2452  * added; $nor support (#674)
2453  * fixed; bug when adding nested schema (#662) [paulwe]
2454
24552.4.9 / 2012-01-04
2456===================
2457
2458  * updated; driver to 0.9.7-3-5 to fix Linux performance degradation on some boxes
2459
24602.4.8 / 2011-12-22
2461===================
2462
2463  * updated; bump -native to 0.9.7.2-5
2464  * fixed; compatibility with date.js (#646) [chrisleishman]
2465  * changed; undocumented schema "lax" option to "strict"
2466  * fixed; default value population for strict schemas
2467  * updated; the nextTick helper for small performance gain. 1bee2a2
2468
24692.4.7 / 2011-12-16
2470===================
2471
2472  * fixed; bug in 2.4.6 with path setting
2473  * updated; bump -native to 0.9.7.2-1
2474  * added; strict schema option [nw]
2475
24762.4.6 / 2011-12-16
2477===================
2478
2479  * fixed; conflicting mods on update bug [sirlantis]
2480  * improved; doc.id getter performance
2481
24822.4.5 / 2011-12-14
2483===================
2484
2485  * fixed; bad MongooseArray behavior in 2.4.2 - 2.4.4
2486
24872.4.4 / 2011-12-14
2488===================
2489
2490  * fixed; MongooseArray#doAtomics throwing after sliced
2491
24922.4.3 / 2011-12-14
2493===================
2494
2495  * updated; system.profile schema for MongoDB 2x
2496
24972.4.2 / 2011-12-12
2498===================
2499
2500  * fixed; partially populating multiple children of subdocs (#639) [kenpratt]
2501  * fixed; allow Update of numbers to null (#640) [jerem]
2502
25032.4.1 / 2011-12-02
2504===================
2505
2506  * added; options support for populate() queries
2507  * updated; -native driver to 0.9.7-1.4
2508
25092.4.0 / 2011-11-29
2510===================
2511
2512  * added; QueryStreams (#614)
2513  * added; debug print mode for development
2514  * added; $within support to Array queries (#586) [ggoodale]
2515  * added; $centerSphere query support
2516  * fixed; $within support
2517  * added; $unset is now used when setting a path to undefined (#519)
2518  * added; query#batchSize support
2519  * updated; docs
2520  * updated; -native driver to 0.9.7-1.3 (provides Windows support)
2521
25222.3.13 / 2011-11-15
2523===================
2524
2525  * fixed; required validation for Refs (#612) [ded]
2526  * added; $nearSphere support for Arrays (#610)
2527
25282.3.12 / 2011-11-09
2529===================
2530
2531  * fixed; regression, objects passed to Model.update should not be changed (#605)
2532  * fixed; regression, empty Model.update should not be executed
2533
25342.3.11 / 2011-11-08
2535===================
2536
2537  * fixed; using $elemMatch on arrays of Mixed types (#591)
2538  * fixed; allow using $regex when querying Arrays (#599)
2539  * fixed; calling Model.update with no atomic keys (#602)
2540
25412.3.10 / 2011-11-05
2542===================
2543
2544  * fixed; model.update casting for nested paths works (#542)
2545
25462.3.9 / 2011-11-04
2547==================
2548
2549  * fixed; deepEquals check for MongooseArray returned false
2550  * fixed; reset modified flags of embedded docs after save [gitfy]
2551  * fixed; setting embedded doc with identical values no longer marks modified [gitfy]
2552  * updated; -native driver to 0.9.6.23 [mlazarov]
2553  * fixed; Model.update casting (#542, #545, #479)
2554  * fixed; populated refs no longer fail required validators (#577)
2555  * fixed; populating refs of objects with custom ids works
2556  * fixed; $pop & $unset work with Model.update (#574)
2557  * added; more helpful debugging message for Schema#add (#578)
2558  * fixed; accessing .id when no _id exists now returns null (#590)
2559
25602.3.8 / 2011-10-26
2561==================
2562
2563  * added; callback to query#findOne is now optional (#581)
2564
25652.3.7 / 2011-10-24
2566==================
2567
2568  * fixed; wrapped save/remove callbacks in nextTick to mitigate -native swallowing thrown errors
2569
25702.3.6 / 2011-10-21
2571==================
2572
2573  * fixed; exclusion of embedded doc _id from query results (#541)
2574
25752.3.5 / 2011-10-19
2576==================
2577
2578  * fixed; calling queries without passing a callback works (#569)
2579  * fixed; populate() works with String and Number _ids too (#568)
2580
25812.3.4 / 2011-10-18
2582==================
2583
2584  * added; Model.create now accepts an array as a first arg
2585  * fixed; calling toObject on a DocumentArray with nulls no longer throws
2586  * fixed; calling inspect on a DocumentArray with nulls no longer throws
2587  * added; MongooseArray#unshift support
2588  * fixed; save hooks now fire on embedded documents [gitfy] (#456)
2589  * updated; -native driver to 0.9.6-22
2590  * fixed; correctly pass $addToSet op instead of $push
2591  * fixed; $addToSet properly detects dates
2592  * fixed; $addToSet with multiple items works
2593  * updated; better node 0.6 Buffer support
2594
25952.3.3 / 2011-10-12
2596==================
2597
2598  * fixed; population conditions in multi-query settings [vedmalex] (#563)
2599  * fixed; now compatible with Node v0.5.x
2600
26012.3.2 / 2011-10-11
2602==================
2603
2604  * fixed; population of null subdoc properties no longer hangs (#561)
2605
26062.3.1 / 2011-10-10
2607==================
2608
2609  * added; support for Query filters to populate() [eneko]
2610  * fixed; querying with number no longer crashes mongodb (#555) [jlbyrey]
2611  * updated; version of -native driver to 0.9.6-21
2612  * fixed; prevent query callbacks that throw errors from corrupting -native connection state
2613
26142.3.0 / 2011-10-04
2615==================
2616
2617  * fixed; nulls as default values for Boolean now works as expected
2618  * updated; version of -native driver to 0.9.6-20
2619
26202.2.4 / 2011-10-03
2621==================
2622
2623  * fixed; populate() works when returned array contains undefined/nulls
2624
26252.2.3 / 2011-09-29
2626==================
2627
2628  * updated; version of -native driver to 0.9.6-19
2629
26302.2.2 / 2011-09-28
2631==================
2632
2633  * added; $regex support to String [davidandrewcope]
2634  * added; support for other contexts like repl etc (#535)
2635  * fixed; clear modified state properly after saving
2636  * added; $addToSet support to Array
2637
26382.2.1 / 2011-09-22
2639==================
2640
2641  * more descript error when casting undefined to string
2642  * updated; version of -native driver to 0.9.6-18
2643
26442.2.0 / 2011-09-22
2645==================
2646
2647  * fixed; maxListeners warning on schemas with many arrays (#530)
2648  * changed; return / apply defaults based on fields selected in query (#423)
2649  * fixed; correctly detect Mixed types within schema arrays (#532)
2650
26512.1.4 / 2011-09-20
2652==================
2653
2654  * fixed; new private methods that stomped on users code
2655  * changed; finished removing old "compat" support which did nothing
2656
26572.1.3 / 2011-09-16
2658==================
2659
2660  * updated; version of -native driver to 0.9.6-15
2661  * added; emit `error` on connection when open fails [edwardhotchkiss]
2662  * added; index support to Buffers (thanks justmoon for helping track this down)
2663  * fixed; passing collection name via schema in conn.model() now works (thanks vedmalex for reporting)
2664
26652.1.2 / 2011-09-07
2666==================
2667
2668  * fixed; Query#find with no args no longer throws
2669
26702.1.1 / 2011-09-07
2671==================
2672
2673  * added; support Model.count(fn)
2674  * fixed; compatibility with node >=0.4.0 < 0.4.3
2675  * added; pass model.options.safe through with .save() so w:2, wtimeout:5000 options work [andrewjstone]
2676  * added; support for $type queries
2677  * added; support for Query#or
2678  * added; more tests
2679  * optimized populate queries
2680
26812.1.0 / 2011-09-01
2682==================
2683
2684  * changed; document#validate is a public method
2685  * fixed; setting number to same value no longer marks modified (#476) [gitfy]
2686  * fixed; Buffers shouldn't have default vals
2687  * added; allow specifying collection name in schema (#470) [ixti]
2688  * fixed; reset modified paths and atomics after saved (#459)
2689  * fixed; set isNew on embedded docs to false after save
2690  * fixed; use self to ensure proper scope of options in doOpenSet (#483) [andrewjstone]
2691
26922.0.4 / 2011-08-29
2693==================
2694
2695  * Fixed; Only send the depopulated ObjectId instead of the entire doc on save (DBRefs)
2696  * Fixed; Properly cast nested array values in Model.update (the data was stored in Mongo incorrectly but recast on document fetch was "fixing" it)
2697
26982.0.3 / 2011-08-28
2699==================
2700
2701  * Fixed; manipulating a populated array no longer causes infinite loop in BSON serializer during save (#477)
2702  * Fixed; populating an empty array no longer hangs foreeeeeeeever (#481)
2703
27042.0.2 / 2011-08-25
2705==================
2706
2707  * Fixed; Maintain query option key order (fixes 'bad hint' error from compound query hints)
2708
27092.0.1 / 2011-08-25
2710==================
2711
2712  * Fixed; do not over-write the doc when no valide props exist in Model.update (#473)
2713
27142.0.0 / 2011-08-24
2715===================
2716
2717  * Added; support for Buffers [justmoon]
2718  * Changed; improved error handling [maelstrom]
2719  * Removed: unused utils.erase
2720  * Fixed; support for passing other context object into Schemas (#234) [Sija]
2721  * Fixed; getters are no longer circular refs to themselves (#366)
2722  * Removed; unused compat.js
2723  * Fixed; getter/setter scopes are set properly
2724  * Changed; made several private properties more obvious by prefixing _
2725  * Added; DBRef support [guille]
2726  * Changed; removed support for multiple collection names per model
2727  * Fixed; no longer applying setters when document returned from db
2728  * Changed; default auto_reconnect to true
2729  * Changed; Query#bind no longer clones the query
2730  * Fixed; Model.update now accepts $pull, $inc and friends (#404)
2731  * Added; virtual type option support [nw]
2732
27331.8.4 / 2011-08-21
2734===================
2735
2736  * Fixed; validation bug when instantiated with non-schema properties (#464) [jmreidy]
2737
27381.8.3 / 2011-08-19
2739===================
2740
2741  * Fixed; regression in connection#open [jshaw86]
2742
27431.8.2 / 2011-08-17
2744===================
2745
2746  * fixed; reset connection.readyState after failure [tomseago]
2747  * fixed; can now query positionally for non-embedded docs (arrays of numbers/strings etc)
2748  * fixed; embedded document query casting
2749  * added; support for passing options to node-mongo-native db, server, and replsetserver [tomseago]
2750
27511.8.1 / 2011-08-10
2752===================
2753
2754  * fixed; ObjectIds were always marked modified
2755  * fixed; can now query using document instances
2756  * fixed; can now query/update using documents with subdocs
2757
27581.8.0 / 2011-08-04
2759===================
2760
2761  * fixed; can now use $all with String and Number
2762  * fixed; can query subdoc array with $ne: null
2763  * fixed; instance.subdocs#id now works with custom _ids
2764  * fixed; do not apply setters when doc returned from db (change in bad behavior)
2765
27661.7.4 / 2011-07-25
2767===================
2768
2769  * fixed; sparse now a valid seperate schema option
2770  * fixed; now catching cast errors in queries
2771  * fixed; calling new Schema with object created in vm.runInNewContext now works (#384) [Sija]
2772  * fixed; String enum was disallowing null
2773  * fixed; Find by nested document _id now works (#389)
2774
27751.7.3 / 2011-07-16
2776===================
2777
2778  * fixed; MongooseArray#indexOf now works with ObjectIds
2779  * fixed; validation scope now set properly (#418)
2780  * fixed; added missing colors dependency (#398)
2781
27821.7.2 / 2011-07-13
2783===================
2784
2785  * changed; node-mongodb-native driver to v0.9.6.7
2786
27871.7.1 / 2011-07-12
2788===================
2789
2790  * changed; roll back node-mongodb-native driver to v0.9.6.4
2791
27921.7.0 / 2011-07-12
2793===================
2794
2795  * fixed; collection name misspelling [mathrawka]
2796  * fixed; 2nd param is required for ReplSetServers [kevinmarvin]
2797  * fixed; MongooseArray behaves properly with Object.keys
2798  * changed; node-mongodb-native driver to v0.9.6.6
2799  * fixed/changed; Mongodb segfault when passed invalid ObjectId (#407)
2800      - This means invalid data passed to the ObjectId constructor will now error
2801
28021.6.0 / 2011-07-07
2803===================
2804
2805  * changed; .save() errors are now emitted on the instances db instead of the instance 9782463fc
2806  * fixed; errors occurring when creating indexes now properly emit on db
2807  * added; $maxDistance support to MongooseArrays
2808  * fixed; RegExps now work with $all
2809  * changed; node-mongodb-native driver to v0.9.6.4
2810  * fixed; model names are now accessible via .modelName
2811  * added; Query#slaveOk support
2812
28131.5.0 / 2011-06-27
2814===================
2815
2816  * changed; saving without a callback no longer ignores the error (@bnoguchi)
2817  * changed; hook-js version bump to 0.1.9
2818  * changed; node-mongodb-native version bumped to 0.9.6.1 - When .remove() doesn't
2819             return an error, null is no longer passed.
2820  * fixed; two memory leaks (@justmoon)
2821  * added; sparse index support
2822  * added; more ObjectId conditionals (gt, lt, gte, lte) (@phillyqueso)
2823  * added; options are now passed in model#remote (@JerryLuke)
2824
28251.4.0 / 2011-06-10
2826===================
2827
2828  * bumped hooks-js dependency (fixes issue passing null as first arg to next())
2829  * fixed; document#inspect now works properly with nested docs
2830  * fixed; 'set' now works as a schema attribute (GH-365)
2831  * fixed; _id is now set properly within pre-init hooks (GH-289)
2832  * added; Query#distinct / Model#distinct support (GH-155)
2833  * fixed; embedded docs now can use instance methods (GH-249)
2834  * fixed; can now overwrite strings conflicting with schema type
2835
28361.3.7 / 2011-06-03
2837===================
2838
2839  * added MongooseArray#splice support
2840  * fixed; 'path' is now a valid Schema pathname
2841  * improved hooks (utilizing https://github.com/bnoguchi/hooks-js)
2842  * fixed; MongooseArray#$shift now works (never did)
2843  * fixed; Document.modified no longer throws
2844  * fixed; modifying subdoc property sets modified paths for subdoc and parent doc
2845  * fixed; marking subdoc path as modified properly persists the value to the db
2846  * fixed; RexExps can again be saved ( #357 )
2847
28481.3.6 / 2011-05-18
2849===================
2850
2851  * fixed; corrected casting for queries against array types
2852  * added; Document#set now accepts Document instances
2853
28541.3.5 / 2011-05-17
2855===================
2856
2857  * fixed; $ne queries work properly with single vals
2858  * added; #inspect() methods to improve console.log output
2859
28601.3.4 / 2011-05-17
2861===================
2862
2863  * fixed; find by Date works as expected (#336)
2864  * added; geospatial 2d index support
2865  * added; support for $near (#309)
2866  * updated; node-mongodb-native driver
2867  * fixed; updating numbers work (#342)
2868  * added; better error msg when try to remove an embedded doc without an _id (#307)
2869  * added; support for 'on-the-fly' schemas (#227)
2870  * changed; virtual id getters can now be skipped
2871  * fixed; .index() called on subdoc schema now works as expected
2872  * fixed; db.setProfile() now buffers until the db is open (#340)
2873
28741.3.3 / 2011-04-27
2875===================
2876
2877  * fixed; corrected query casting on nested mixed types
2878
28791.3.2 / 2011-04-27
2880===================
2881
2882  * fixed; query hints now retain key order
2883
28841.3.1 / 2011-04-27
2885===================
2886
2887  * fixed; setting a property on an embedded array no longer overwrites entire array (GH-310)
2888  * fixed; setting nested properties works when sibling prop is named "type"
2889  * fixed; isModified is now much finer grained when .set() is used (GH-323)
2890  * fixed; mongoose.model() and connection.model() now return the Model (GH-308, GH-305)
2891  * fixed; can now use $gt, $lt, $gte, $lte with String schema types (GH-317)
2892  * fixed; .lowercase() -> .toLowerCase() in pluralize()
2893  * fixed; updating an embedded document by index works (GH-334)
2894  * changed; .save() now passes the instance to the callback (GH-294, GH-264)
2895  * added; can now query system.profile and system.indexes collections
2896  * added; db.model('system.profile') is now included as a default Schema
2897  * added; db.setProfiling(level, ms, callback)
2898  * added; Query#hint() support
2899  * added; more tests
2900  * updated node-mongodb-native to 0.9.3
2901
29021.3.0 / 2011-04-19
2903===================
2904
2905  * changed; save() callbacks now fire only once on failed validation
2906  * changed; Errors returned from save() callbacks now instances of ValidationError
2907  * fixed; MongooseArray#indexOf now works properly
2908
29091.2.0 / 2011-04-11
2910===================
2911
2912  * changed; MongooseNumber now casts empty string to null
2913
29141.1.25 / 2011-04-08
2915===================
2916
2917  * fixed; post init now fires at proper time
2918
29191.1.24 / 2011-04-03
2920===================
2921
2922  * fixed; pushing an array onto an Array works on existing docs
2923
29241.1.23 / 2011-04-01
2925===================
2926
2927  * Added Model#model
2928
29291.1.22 / 2011-03-31
2930===================
2931
2932  * Fixed; $in queries on mixed types now work
2933
29341.1.21 / 2011-03-31
2935===================
2936
2937  * Fixed; setting object root to null/undefined works
2938
29391.1.20 / 2011-03-31
2940===================
2941
2942  * Fixed; setting multiple props on null field works
2943
29441.1.19 / 2011-03-31
2945===================
2946
2947  * Fixed; no longer using $set on paths to an unexisting fields
2948
29491.1.18 / 2011-03-30
2950===================
2951
2952  * Fixed; non-mixed type object setters work after initd from null
2953
29541.1.17 / 2011-03-30
2955===================
2956
2957  * Fixed; nested object property access works when root initd with null value
2958
29591.1.16 / 2011-03-28
2960===================
2961
2962  * Fixed; empty arrays are now saved
2963
29641.1.15 / 2011-03-28
2965===================
2966
2967  * Fixed; `null` and `undefined` are set atomically.
2968
29691.1.14 / 2011-03-28
2970===================
2971
2972  * Changed; more forgiving date casting, accepting '' as null.
2973
29741.1.13 / 2011-03-26
2975===================
2976
2977  * Fixed setting values as `undefined`.
2978
29791.1.12 / 2011-03-26
2980===================
2981
2982  * Fixed; nested objects now convert to JSON properly
2983  * Fixed; setting nested objects directly now works
2984  * Update node-mongodb-native
2985
29861.1.11 / 2011-03-25
2987===================
2988
2989  * Fixed for use of `type` as a key.
2990
29911.1.10 / 2011-03-23
2992===================
2993
2994  * Changed; Make sure to only ensure indexes while connected
2995
29961.1.9 / 2011-03-2
2997==================
2998
2999  * Fixed; Mixed can now default to empty arrays
3000  * Fixed; keys by the name 'type' are now valid
3001  * Fixed; null values retrieved from the database are hydrated as null values.
3002  * Fixed repeated atomic operations when saving a same document twice.
3003
30041.1.8 / 2011-03-23
3005==================
3006
3007  * Fixed 'id' overriding. [bnoguchi]
3008
30091.1.7 / 2011-03-22
3010==================
3011
3012  * Fixed RegExp query casting when querying against an Array of Strings [bnoguchi]
3013  * Fixed getters/setters for nested virtualsl. [bnoguchi]
3014
30151.1.6 / 2011-03-22
3016==================
3017
3018  * Only doValidate when path exists in Schema [aheckmann]
3019  * Allow function defaults for Array types [aheckmann]
3020  * Fix validation hang [aheckmann]
3021  * Fix setting of isRequired of SchemaType [aheckmann]
3022  * Fix SchemaType#required(false) filter [aheckmann]
3023  * More backwards compatibility [aheckmann]
3024  * More tests [aheckmann]
3025
30261.1.5 / 2011-03-14
3027==================
3028
3029  * Added support for `uri, db, fn` and `uri, fn` signatures for replica sets.
3030  * Improved/extended replica set tests.
3031
30321.1.4 / 2011-03-09
3033==================
3034
3035  * Fixed; running an empty Query doesn't throw. [aheckmann]
3036  * Changed; Promise#addBack returns promise. [aheckmann]
3037  * Added streaming cursor support. [aheckmann]
3038  * Changed; Query#update defaults to use$SetOnSave now. [brian]
3039  * Added more docs.
3040
30411.1.3 / 2011-03-04
3042==================
3043
3044  * Added Promise#resolve [aheckmann]
3045  * Fixed backward compatibility with nulls [aheckmann]
3046  * Changed; Query#{run,exec} return promises [aheckmann]
3047
30481.1.2 / 2011-03-03
3049==================
3050
3051  * Restored Query#exec and added notion of default operation [brian]
3052  * Fixed ValidatorError messages [brian]
3053
30541.1.1 / 2011-03-01
3055==================
3056
3057  * Added SchemaType String `lowercase`, `uppercase`, `trim`.
3058  * Public exports (`Model`, `Document`) and tests.
3059  * Added ObjectId casting support for `Document`s.
3060
30611.1.0 / 2011-02-25
3062==================
3063
3064  * Added support for replica sets.
3065
30661.0.16 / 2011-02-18
3067===================
3068
3069  * Added $nin as another whitelisted $conditional for SchemaArray [brian]
3070  * Changed #with to #where [brian]
3071  * Added ability to use $in conditional with Array types [brian]
3072
30731.0.15 / 2011-02-18
3074===================
3075
3076  * Added `id` virtual getter for documents to easily access the hexString of
3077  the `_id`.
3078
30791.0.14 / 2011-02-17
3080===================
3081
3082  * Fix for arrays within subdocuments [brian]
3083
30841.0.13 / 2011-02-16
3085===================
3086
3087  * Fixed embedded documents saving.
3088
30891.0.12 / 2011-02-14
3090===================
3091
3092  * Minor refactorings [brian]
3093
30941.0.11 / 2011-02-14
3095===================
3096
3097  * Query refactor and $ne, $slice, $or, $size, $elemMatch, $nin, $exists support [brian]
3098  * Named scopes sugar [brian]
3099
31001.0.10 / 2011-02-11
3101===================
3102
3103  * Updated node-mongodb-native driver [thanks John Allen]
3104
31051.0.9 / 2011-02-09
3106==================
3107
3108  * Fixed single member arrays as defaults [brian]
3109
31101.0.8 / 2011-02-09
3111==================
3112
3113  * Fixed for collection-level buffering of commands [gitfy]
3114  * Fixed `Document#toJSON` [dalejefferson]
3115  * Fixed `Connection` authentication [robrighter]
3116  * Fixed clash of accessors in getters/setters [eirikurn]
3117  * Improved `Model#save` promise handling
3118
31191.0.7 / 2011-02-05
3120==================
3121
3122  * Fixed memory leak warnings for test suite on 0.3
3123  * Fixed querying documents that have an array that contain at least one
3124  specified member. [brian]
3125  * Fixed default value for Array types (fixes GH-210). [brian]
3126  * Fixed example code.
3127
31281.0.6 / 2011-02-03
3129==================
3130
3131  * Fixed `post` middleware
3132  * Fixed; it's now possible to instantiate a model even when one of the paths maps
3133  to an undefined value [brian]
3134
31351.0.5 / 2011-02-02
3136==================
3137
3138  * Fixed; combo $push and $pushAll auto-converts into a $pushAll [brian]
3139  * Fixed; combo $pull and $pullAll auto-converts to a single $pullAll [brian]
3140  * Fixed; $pullAll now removes said members from array before save (so it acts just
3141  like pushAll) [brian]
3142  * Fixed; multiple $pulls and $pushes become a single $pullAll and $pushAll.
3143  Moreover, $pull now modifies the array before save to reflect the immediate
3144  change [brian]
3145  * Added tests for nested shortcut getters [brian]
3146  * Added tests that show that Schemas with nested Arrays don't apply defaults
3147  [brian]
3148
31491.0.4 / 2011-02-02
3150==================
3151
3152  * Added MongooseNumber#toString
3153  * Added MongooseNumber unit tests
3154
31551.0.3 / 2011-02-02
3156==================
3157
3158  * Make sure safe mode works with Model#save
3159  * Changed Schema options: safe mode is now the default
3160  * Updated node-mongodb-native to HEAD
3161
31621.0.2 / 2011-02-02
3163==================
3164
3165  * Added a Model.create shortcut for creating documents. [brian]
3166  * Fixed; we can now instantiate models with hashes that map to at least one
3167  null value. [brian]
3168  * Fixed Schema with more than 2 nested levels. [brian]
3169
31701.0.1 / 2011-02-02
3171==================
3172
3173  * Improved `MongooseNumber`, works almost like the native except for `typeof`
3174  not being `'number'`.