Npms_big

mongoose

All 421 versions

Version Release date
4.13.4 November 17, 2017
  • fix(aggregate): add chainable .option() helper for setting arbitrary options #5829
  • fix(aggregate): add .pipeline() helper to get the current pipeline #5825
  • docs: grammar fixes for unique FAQ #5823 mfluehr
  • chore: add node 9 to travis #5822 superheri
  • fix(model): fix infinite recursion with recursive embedded discriminators #5821 Faibk
4.13.3 November 16, 2017
  • chore: add node 8 to travis #5818 superheri
  • fix(document): don't apply transforms to nested docs when updating already saved doc #5807
4.13.2 November 13, 2017
  • feat(buffer): add support for subtype prop #5530
4.13.1 November 09, 2017
  • fix: accept multiple paths or array of paths to depopulate #5798 #5797 adamreisnz
  • fix(document): pass default array as actual array rather than taking first element #5780
  • fix(model): increment version when $set-ing it in a save() that requires a version bump #5779
  • fix(query): don't explicitly project in discriminator key if user projected in parent path #5775 #5754
  • fix(model): cast query option to geoNear() #5765
  • fix(query): don't treat projection with just $slice as inclusive #5737
  • fix(discriminator): defer applying embedded discriminator hooks until top-level model is compiled #5706
  • docs(discriminator): add warning to always attach hooks before calling discriminator() #5706
4.13.0 November 03, 2017
  • feat(aggregate): add $addFields helper #5740 AyushG3112
  • feat(connection): add connection-level bufferCommands #5720
  • feat(connection): add createCollection() helper #5712
  • feat(populate): support setting localField and foreignField to functions #5704 #5602
  • feat(query): add multipleCastError option for aggregating cast errors when casting update #5609
  • feat(populate): allow passing a function to virtual ref #5602
  • feat(schema): add excludeIndexes option to optionally prevent collecting indexes from nested schemas #5575
  • feat(model): report validation errors from insertMany() if using ordered: false and rawResult: true #5337
  • feat(aggregate): add pre/post aggregate middleware #5251
  • feat(schema): allow using set as a schema path #1939
4.12.6 November 01, 2017
  • fix(schema): make clone() copy query helpers correctly #5752
  • fix: undeprecate ensureIndex() and use it by default #3280
4.12.5 October 30, 2017
  • fix(query): correctly handle $in and required for $pull and update validators #5744
  • feat(aggegate): add $addFields pipeline operator #5740 AyushG3112
  • fix(document): catch sync errors in document pre hooks and report as error #5738
  • fix(populate): handle slice projections correctly when automatically selecting populated fields #5737
  • fix(discriminator): fix hooks for embedded discriminators #5706 wlingke
  • fix(model): throw sane error when customer calls mongoose.Model() over mongoose.model() #2005
4.12.4 October 21, 2017
  • test(plugins): add coverage for idGetter with id as a schema property #5713 wlingke
  • fix(model): avoid copying recursive $$context object when creating discriminator after querying #5721
  • fix(connection): ensure connection promise helpers are removed before emitting 'connected' #5714
  • docs(schema): add notes about runSettersOnQuery to schema setters #5705
  • fix(collection): ensure queued operations run on the next tick #5562
4.12.3 October 16, 2017
  • fix(connection): emit 'reconnect' event as well as 'reconnected' for consistency with driver #5719
  • fix: correctly bubble up left/joined events for replica set #5718
  • fix(connection): allow passing in autoIndex as top-level option rather than requiring config.autoIndex #5711
  • docs(connection): improve docs regarding reconnectTries, autoReconnect, and bufferMaxEntries #5711
  • fix(query): handle null with addToSet/push/pull/pullAll update validators #5710
  • fix(model): handle setDefaultsOnInsert option for bulkWrite updateOne and updateMany #5708
  • fix(query): avoid infinite recursion edge case when cloning a buffer #5702
4.12.2 October 14, 2017
  • docs(faq): add FAQ about using arrow functions for getters/setters, virtuals, and methods #5700
  • docs(schema): document the childSchemas property and add to public API #5695
  • fix(query): don't project in populated field if parent field is already projected in #5669
  • fix: bump mongodb -> 2.2.33 for issue with autoReconnect #4513
4.12.1 October 08, 2017
  • fix(document): create new doc when setting single nested, no more set() on copy of priorVal #5693
  • fix(model): recursively call applyMethods on child schemas for global plugins #5690
  • docs: fix bad promise lib example on home page #5686
  • fix(query): handle false when checking for inclusive/exclusive projection #5685
  • fix(discriminator): allow reusing child schema #5684
  • fix: make addToSet() on empty array with subdoc trigger manual population #5504
4.12.0 October 03, 2017
  • docs(validation): add docs coverage for ValidatorError.reason #5681
  • feat(discriminator): always add discriminatorKey to base schema to allow updating #5613
  • fix(document): make nested docs no longer inherit parent doc's schema props #5586 #5546 #5470
  • feat(query): run update validators on $pull and $pullAll #5555
  • feat(query): add .error() helper to query to error out in pre hooks #5520
  • feat(connection): add dropCollection() helper #5393
  • feat(schema): add schema-level collation option #5295
  • feat(types): add discriminator() function for single nested subdocs #5244
  • feat(document): add $isDeleted() getter/setter for better support for soft deletes #4428
  • feat(connection): bubble up reconnectFailed event when driver gives up reconnecting #4027
  • fix(query): report error if passing array or other non-object as filter to update query #3677
  • fix(collection): use createIndex() instead of deprecated ensureIndex() #3280
4.11.14 September 30, 2017
  • chore: add nsp check to the CI build #5679 hairyhenderson
  • fix: bump mquery because of security issue with debug package #5677 #5675 jonathanprl
  • fix(populate): automatically select() populated()-ed fields #5669
  • fix(connection): make force close work as expected #5664
  • fix(document): treat $elemMatch as inclusive projection #5661
  • docs(model/query): clarify which functions fire which middleware #5654
  • fix(model): make init() public and return a promise that resolves when indexes are done building #5563
4.11.13 September 25, 2017
  • fix(query): correctly run replaceOne with update validators #5665 sime1
  • fix(schema): replace mistype in setupTimestamp method #5656 zipp3r
  • fix(query): avoid throwing cast error for strict: throw with nested id in query #5640
  • fix(model): ensure class gets combined schema when using class syntax with discriminators #5635
  • fix(document): handle setting doc array to array of top-level docs #5632
  • fix(model): handle casting findOneAndUpdate() with overwrite and upsert #5631
  • fix(update): correctly handle $ in updates #5628
  • fix(types): handle manual population consistently for unshift() and splice() #5504
4.11.12 September 18, 2017
  • docs(model): asterisk should not render as markdown bullet #5644 timkinnane
  • docs: use useMongoClient in connection example #5627 GabrielNicolasAvellaneda
  • fix(connection): call callback when initial connection failed #5626
  • fix(query): apply select correctly if a given nested schema is used for 2 different paths #5603
  • fix(document): add graceful fallback for setting a doc array value and pull()-ing a doc #3511
4.11.11 September 10, 2017
  • fix(connection): properly set readyState in response to driver 'close' and 'reconnect' events #5604
  • fix(document): ensure single embedded doc setters only get called once, with correct value #5601
  • fix(timestamps): allow enabling updatedAt without createdAt #5598
  • test: improve unique validator test by making create run before ensureIndex #5595 #5562
  • fix(query): ensure find callback only gets called once when post init hook throws error #5592
4.11.10 September 04, 2017
  • docs: add KeenIO tracking #5612
  • fix(schema): ensure validators declared with .validate() get copied with clone() #5607
  • fix: remove unnecessary jest warning #5480
  • fix(discriminator): prevent implicit discriminator schema id from clobbering base schema custom id #5591
  • fix(schema): hide schema objectid warning for non-hex strings of length 24 #5587
  • docs(populate): use story schema defined key author instead of creator #5578 dmric
  • docs(document): describe usage of .set() #5576
  • fix(document): ensure correct scope in single nested validators #5569
  • fix(populate): don't mark path as populated until populate() is done #5564
  • fix(document): make push()-ing a doc onto an empty array act as manual population #5504
  • fix(connection): emit timeout event on socket timeout #4513
4.11.9 August 28, 2017
  • fix(error): avoid using arguments.callee because that breaks strict mode #5572
  • docs(schematypes): fix spacing #5567
  • fix(query): enforce binary subtype always propagates to mongodb #5551
  • fix(query): only skip castForQuery for mongoose arrays #5536
  • fix(browser): rely on browser entrypoint to decide whether to use BrowserDocument or NodeDocument #5480
4.11.8 August 24, 2017
  • feat: add warning about using schema ObjectId as type ObjectId #5571 efkan
  • fix(schema): allow setting id property after schema was created #5570 #5548
  • docs(populate): remove confusing _ from populate docs #5560
  • fix(connection): expose parsed uri fields (host, port, dbname) when using openUri() #5556
  • docs: added type boolean to options documentation #5547 ndabAP
  • test: add test coverage for stopping/starting server #5524
  • fix(aggregate): pull read preference from schema by default #5522
4.11.7 August 14, 2017
  • fix: correct properties when calling toJSON() on populated virtual #5544 #5442 davidwu226
  • docs: fix spelling #5535 et
  • fix(error): always set name before stack #5533
  • fix: add warning about running jest in jsdom environment #5532 #5513 #4943
  • fix(document): ensure overwriting a doc array cleans out individual docs #5523
  • fix(schema): handle creating arrays of single nested using type key #5521
  • fix: upgrade mongodb -> 2.2.31 to support user/pass options #5419
4.11.6 August 07, 2017
  • fix: limiting number of async operations per time in insertMany #5529 andresattler
  • fix: upgrade mongodb -> 2.2.30 #5517
  • fix(browserDocument): prevent stack overflow caused by double-wrapping embedded doc save() in jest #5513
  • fix(document): clear single nested doc when setting to empty object #5506
  • fix(connection): emit reconnected and disconnected events correctly with useMongoClient #5498
  • fix(populate): ensure nested virtual populate gets set even if top-level property is null #5431
4.11.5 July 30, 2017
  • docs: fix link to $lookup #5516 TalhaAwan
  • fix: better parallelization for eachAsync #5502 lchenay
  • docs(document): copy docs for save from model to doc #5493
  • fix(document): handle dotted virtuals in toJSON output #5473
  • fix(populate): restore user-provided limit after mutating so cursor() works with populate limit #5468
  • fix(query): don't throw StrictModeError if geo query with upsert #5467
  • fix(populate): propagate readPreference from query to populate queries by default #5460
  • docs: warn not to use arrow functions for statics and methods #5458
  • fix(query): iterate over all condition keys for setDefaultsOnInsert #5455
  • docs(connection): clarify server/replset/mongos option deprecation with useMongoClient #5442
4.11.4 July 23, 2017
  • fix: handle next() errors in eachAsync() #5486 lchenay
  • fix(schema): propagate runSettersOnQuery option to implicitly created schemas #5479 [https://github.com/ValYouW]
  • fix(query): run castConditions() correctly in update ops #5477
  • fix(query): ensure castConditions called for findOne and findOneAnd* #5477
  • docs: clarify relationship between $lookup and populate #5475 TalhaAwan
  • test: add coverage for arrays of arrays zbjornson
  • fix(middleware): ensure that error handlers for save get doc as 2nd param #5466
  • fix: handle strict: false correctly #5454 #5453 wookieb
  • fix(query): apply schema excluded paths if only projection is a $slice #5450
  • fix(query): correct discriminator handling for schema select: false fields in schema #5448
  • fix(cursor): call next() in series when parallel option used #5446
  • chore: load bundled driver first to avoid packaging problem #5443 prototypeme
  • fix(query): defer condition casting until final exec #5434
  • fix(aggregate): don't rely on mongodb aggregate to put a cursor in the callback #5394
  • docs(aggregate): add useMongooseAggCursor docs #5394
  • docs(middleware): clarify context for document, query, and model middleware #5381
4.11.3 July 14, 2017
  • fix(connection): remove .then() before resolving to prevent infinite recursion #5471
4.11.2 July 13, 2017
  • docs: fix comment typo in connect example #5435 ConnorMcF
  • fix(update): correctly cast document array in update validators with exec() #5430
  • fix(connection): handle autoIndex with useMongoClient #5423
  • fix(schema): handle type: [Array] in schemas #5416
  • fix(timestamps): if overwrite is set and there's a $set, use $set instead of top-level update #5413
  • fix(document): don't double-validate deeply nested doc array elements #5411
  • fix(schematype): clone default objects so default not shared across object instances unless shared specified #5407
  • fix(document): reset down the nested subdocs when resetting parent doc #5406
  • fix: don't pass error arg twice to error handlers #5405
  • fix(connection): make openUri() return connection decorated with then() and catch() #5404
  • fix: enforce $set on an array must be an array #5403
  • fix(document): don't crash if calling validateSync() after overwriting doc array index #5389
  • fix(discriminator): ensure discriminator key doesn't count as user-selected field for projection #4629
4.11.1 July 03, 2017
  • docs: populate virtuals fix justOne description #5427 fredericosilva
  • fix(connection): make sure to call onOpen in openUri() #5404
  • docs(query): justOne is actually single, and it default to false #5402 zbjornson
  • docs: fix small typo in lib/schema.js #5398 #5396 pjo336
  • fix: emit remove on single nested subdocs when removing parent #5388
  • fix(update): handle update with defaults and overwrite but no update validators #5384
  • fix(populate): handle undefined refPath values in middle of array #5377
  • fix(document): ensure consistent setter context for single nested #5363
  • fix(query): support runSettersOnQuery as query option #5350
4.11.0 June 25, 2017
  • feat(query): execute setters with query as context for runSettersOnQuery #5339
  • feat(model): add translateAliases function #5338 rocketspacer
  • feat(connection): add useMongoClient and openUri functions, deprecate current connect logic #5304
  • refactor(schema): make id virtual not access doc internals #5279
  • refactor: handle non-boolean lean #5279
  • feat(cursor): add addCursorFlag() support to query and agg cursors #4814
  • feat(cursor): add parallel option to eachAsync #4244
  • feat(schema): allow setting custom error constructor for custom validators #4009
4.10.8 June 22, 2017
  • docs: fix small formatting typo on schematypes #5374 gianpaj
  • fix(model): allow null as an _id #5370
  • fix(populate): don't throw async uncaught exception if model not found in populate #5364
  • fix: correctly cast decimals in update #5361
  • fix(error): don't use custom getter for ValidationError message #5359
  • fix(query): handle runSettersOnQuery in built-in _id setter #5351
  • fix(document): ensure consistent context for nested doc custom validators #5347
4.10.7 June 18, 2017
  • docs(validation): show overriding custom validator error with 2nd cb arg #5358
  • fix: parseOption mutates user passed option map #5357 igwejk
  • docs: fix guide.jade typo #5356 CalebAnderson2014
  • fix(populate): don't set populate virtual to ids when match fails #5336
  • fix(query): callback with cast error if remove and delete* args have a cast error #5323
4.10.6 June 13, 2017
  • fix(cursor): handle custom model option for populate #5334
  • fix(populate): handle empty virtual populate with Model.populate #5331
  • fix(model): make ensureIndexes() run with autoIndex: false unless called internally #5328 #5324 #5317
  • fix: wait for all connections to close before resolving disconnect() promise #5316
  • fix(document): handle setting populated path with custom typeKey in schema #5313
  • fix(error): add toJSON helper to ValidationError so message shows up with JSON.stringify #5309
  • feat: add getPromiseConstructor() to prevent need for mongoose.Promise.ES6 #5305
  • fix(document): handle conditional required with undefined props #5296
  • fix(model): clone options before inserting in save() #5294
  • docs(populate): clarify that multiple populate() calls on same path overwrite #5274
4.10.5 June 07, 2017
  • chore: improve contrib guide for building docs #5312
  • fix(populate): handle init-ing nested virtuals properly #5311
  • fix(update): report update validator error if required path under single nested doc not set
  • fix(schema): remove default validate pre hook that was causing issues with jest #4943
4.10.4 May 29, 2017
  • chore: dont store test data in same directory #5303
  • chore: add data dirs to npmignore #5301 Starfox64
  • docs(query): add docs about runSettersOnQuery #5300
4.10.3 May 27, 2017
  • docs: correct inconsistent references to updateOne and replaceOne #5297 dhritzkiv
  • docs: fix dropdowns in docs #5292 nathanallen
  • docs: add description of alias option #5287
  • fix(document): prevent infinite loop if validating nested array #5282
  • fix(schema): correctly handle ref ObjectIds from different mongoose libs #5259
  • fix(schema): load child class methods after base class methods to allow override #5227
4.10.2 May 23, 2017
  • fix: bump ms -> 2.0.0 and mquery -> 2.3.1 for minor security vulnerability #5275
4.10.1 May 22, 2017
  • fix(aggregate): handle sorting by text score correctly #5258
  • fix(populate): handle doc.populate() with virtuals #5240
  • fix(schema): enforce that _id is never null #5236
4.10.0 May 18, 2017
  • fix(schema): update clone method to include indexes #5268 clozanosanchez
  • feat(schema): support aliases #5184 rocketspacer
  • feat(aggregate): add mongoose-specific aggregation cursor option #5145
  • refactor(model): make sharding into a plugin instead of core #5105
  • fix(document): make nested doc mongoose internals not enumerable again #5078
  • feat(model): pass params to pre hooks #5064
  • feat(timestamps): support already defined timestamp paths in schema #4868
  • feat(query): add runSettersOnQuery option #4569
  • fix(query): add strictQuery option that throws when not querying on field not in schema #4136
  • fix(update): more complete handling for overwrite option with update validators #3556
  • feat: support unique: true in arrays via the mongoose-unique-array plugin #3347
  • fix(model): always emit 'index', even if no indexes #3347
  • fix(schema): set unique indexes on primitive arrays #3347
  • feat(validation): include failed paths in error message and inspect output #3064 #2135
  • fix(model): return saved docs when create() fails #2190
4.9.10 May 18, 2017
  • fix(connection): ensure callback arg to openSet() is handled properly #5249
  • docs: remove dead plugins repo and add content links #5247
  • fix(model): skip index build if connecting after model init and autoIndex false #5176
4.9.9 May 13, 2017
  • docs: correct value for Query#regex() #5230
  • fix(connection): don't throw if .catch() on open() promise #5229
  • fix(schema): allow update with $currentDate for updatedAt to succeed #5222
  • fix(model): versioning doesn't fail if version key undefined #5221 basileos
  • fix(document): don't emit model error if callback specified for consistency with docs #5216
  • fix(document): handle errors in subdoc pre validate #5215
4.9.8 May 07, 2017
  • docs(subdocs): rewrite subdocs guide #5217
  • fix(document): avoid circular JSON if error in doc array under single nested subdoc #5208
  • fix(document): set intermediate empty objects for deeply nested undefined paths before path itself #5206
  • fix(schema): throw error if first param to schema.plugin() is not a function #5201
  • perf(document): major speedup in validating subdocs (50x in some cases) #5191
4.9.7 May 01, 2017
  • docs: fix typo #5204 phutchins
  • fix(schema): ensure correct path for deeply nested schema indexes #5199
  • fix(schema): make remove a reserved name #5197
  • fix(model): handle Decimal type in insertMany correctly #5190
  • fix: upgrade kareem to handle async pre hooks correctly #5188
  • docs: add details about unique not being a validator #5179
  • fix(validation): handle returning a promise with isAsync: true #5171
4.9.6 April 24, 2017
  • fix: update parentArray references when directly assigning document arrays #5192 jhob
  • docs: improve schematype validator docs #5178 milesbarr
  • fix(model): modify discriminator() class in place #5175
  • fix(model): handle bulkWrite updateMany casting #5172 tzellman
  • docs(model): fix replaceOne example for bulkWrite #5168
  • fix(document): don't create a new array subdoc when creating schema array #5162
  • fix(model): merge query hooks from discriminators #5147
  • fix(document): add parent() function to subdocument to match array subdoc #5134
4.9.5 April 17, 2017
  • fix(query): correct $pullAll casting of null #5164 Sebmaster
  • docs: add advanced schemas docs for loadClass #5157
  • fix(document): handle null/undefined gracefully in applyGetters() #5143
  • fix(model): add resolveToObject option for mapReduce with ES6 promises #4945
4.9.4 April 09, 2017
  • fix(schema): clone query middleware correctly #5153 #5141 clozanosanchez
  • docs(aggregate): fix typo #5142
  • fix(query): cast .$ update to underlying array type #5130
  • fix(populate): don't mutate populate result in place #5128
  • fix(query): handle $setOnInsert consistent with $set #5126
  • docs(query): add strict mode option for findOneAndUpdate #5108
4.9.3 April 02, 2017
  • docs: document.js fixes for functions prepended with $ #5131 krmannix
  • fix: Avoid exception on constructor check #5129 monkbroc
  • docs(schematype): explain how to use isAsync with validate() #5125
  • docs(schematype): explain custom message with required function #5123
  • fix(populate): only apply refPath duplicate id optimization if not array #5114
  • fix(document): copy non-objects to doc when init() #5111
  • perf(populate): dont clone whole options every time #5103
  • feat(document): add isDirectSelected() to minimize isSelected() changes #5063
  • docs(schematypes): explain some subtleties with arrays #5059
4.9.2 March 26, 2017
  • fix(discriminator): handle class names consistently #5104
  • fix(schema): make clone() work with reusing discriminator schemas #5098
  • fix(querycursor): run pre find hooks with .cursor() #5096
  • fix(connection): throw error if username:password includes @ or : #5091
  • fix(timestamps): handle overwriting createdAt+updatedAt consistently #5088
  • fix(document): ensure subdoc post save runs after parent save #5085
  • docs(model): improve update docs #5076 bertolo1988
4.9.1 March 19, 2017
  • fix(query): handle $type for arrays #5080 #5079 zoellner
  • fix(model): handle ordered param for insertMany validation errors #5072 sjorssnoeren
  • fix(populate): avoid duplicate ids in dynref queries #5054
  • fix(timestamps): dont set timestamps in update if user set it #5045
  • fix(update): dont double-call setters on arrays #5041
  • fix: upgrade driver -> 2.2.25 for jest fix #5033
  • fix(model): get promise each time save() is called rather than once #5030
  • fix(connection): make connect return value consistent #5006
4.9.0 March 13, 2017
  • feat(document): return this from depopulate() #5027
  • fix(drivers): stop emitting timeouts as errors #5026
  • feat(schema): add a clone() function for schemas #4983
  • feat(query): add rawResult option to replace passRawResult, deprecate passRawResult #4977 #4925
  • feat(schematype): support isAsync validator option and handle returning promises from validators, deprecate implicit async validators #4290
  • feat(query): add replaceOne(), deleteOne(), deleteMany() #3998
  • feat(model): add bulkWrite() #3998
4.8.7 March 12, 2017
  • fix(model): if last arg in spread is falsy, treat it as a callback #5061
  • fix(document): use $hook instead of hook to enable 'hook' as a path name #5047
  • fix(populate): dont select foreign field if parent field is selected #5037
  • fix(populate): handle passing no args to query.populate #5036
  • fix(update): use correct method for casting nested arrays #5032
  • fix(discriminator): handle array discriminators when casting $push #5009
4.8.6 March 05, 2017
  • docs(document): remove text that implies that transform is false by default #5023
  • fix(applyHooks): dont wrap a function if it is already wrapped #5019
  • fix(document): ensure nested docs' toObject() clones #5008
4.8.5 February 26, 2017
  • fix: check for empty schemaPath before accessing property $isMongooseDocumentArray #5017 https://github.com/randyhoulahan
  • fix(discriminators): handle create() and push() for embedded discriminators #5001
  • fix(querycursor): ensure close emitted after last data event #4998
  • fix(discriminators): remove fields not selected in child when querying by base model #4991
4.8.4 February 20, 2017
  • docs(discriminators): explain embedded discriminators #4997
  • fix(query): fix TypeError when findOneAndUpdate errors #4990
  • fix(update): handle nested single embedded in update validators correctly #4989
  • fix(browser): make browser doc constructor not crash #4987
4.8.3 February 16, 2017
  • chore: upgrade mongodb driver -> 2.2.24
  • docs(connections): addd some details about callbacks #4986
  • fix: ensure class is created with new keyword #4972 #4947 benhjames
  • fix(discriminator): add applyPluginsToDiscriminators option #4965
  • fix(update): properly cast array subdocs when casting update #4960
  • fix(populate): ensure foreign field is selected for virtual populate #4959
  • docs(query): document some query callback params #4949
  • fix(document): ensure errors in validators get caught #2185
4.8.2 February 11, 2017
  • fix(update): actually run validators on addToSet #4953
  • fix(update): improve buffer error handling #4944 ValYouW
  • fix(discriminator): handle subclassing with loadClass correctly #4942
  • fix(query): allow passing Map to sort() #4941
  • fix(document): handle setting discriminator doc #4935
  • fix(schema): return correct value from pre init hook #4928
  • fix(query): ensure consistent params in error handlers if pre hook errors #4927
4.8.1 January 31, 2017
  • fix(query): handle $exists for arrays and embedded docs #4937
  • fix(query): handle passing string to hint() #4931
4.8.0 January 29, 2017
  • feat(schema): add saveErrorIfNotFound option and $where property #4924 #4004
  • feat(query): add $in implicitly if passed an array #4912 QuotableWater7
  • feat(aggregate): helper for $facet #4904 varunjayaraman
  • feat(query): add collation method #4839
  • feat(schema): propogate strict option to implicit array subschemas #4831 dkrosso
  • feat(aggregate): add helper for graphLookup #4819 varunjayaraman
  • feat(types): support Decimal128 #4759
  • feat(aggregate): add eachAsync() to aggregate cursor #4300
  • feat(query): add updateOne and updateMany #3997
  • feat(model): support options for insertMany #3893
  • fix(document): run validation on single nested docs if not directly modified #3884
  • feat(model): use discriminator constructor based on discriminatorKey in create() #3624
  • feat: pass collection as context to debug function #3261
  • feat(query): support push and addToSet for update validators #2933
  • perf(document): refactor registerHooksFromSchema so hooks are defined on doc prototype #2754
  • feat(types): add discriminator() function to doc arrays #2723 #1856
  • fix(populate): return an error if sorting underneath a doc array #2202
4.7.9 January 27, 2017
  • fix(query): handle casting $exists under $not #4933
  • chore: upgrade mongodb -> 2.2.22 re: #4931
4.7.8 January 24, 2017
  • fix(populate): better handling for virtual populate under arrays #4923
  • docs: upgrade contributors count #4918 AdamZaczek
  • fix(query): don't set nested path default if setting parent path #4911
  • docs(promise): add missing bracket #4907
  • fix(connection): ensure error handling is consistently async #4905
  • fix: handle authMechanism in query string #4900
  • fix(document): ensure error handlers run for validate #4885
4.7.7 January 16, 2017
  • fix(utils): don't crash if to[key] is null #4881
  • fix: upgrade mongodb -> 2.2.21 #4867
  • fix: add a toBSON to documents for easier querying #4866
  • fix: suppress bluebird warning #4854 davidwu226
  • fix(populate): handle nested virtuals in virtual populate #4851
4.7.6 January 03, 2017
  • fix(model): allow passing non-array to insertMany #4846
  • fix(populate): use base model name if no discriminator for backwards compat #4843
  • fix: allow internal validate callback to be optional #4842 arciisine
  • fix(document): don't skip pointCut if save not defined (like in browser doc) #4841
  • chore: improve benchmarks #4838 billouboq
  • perf: remove some unused parameters #4837 billouboq
  • fix(query): don't call error handler if passRawResult is true and no error occurred #4836
4.7.5 December 26, 2016
  • docs(model): fix spelling mistake #4828 paulinoj
  • fix(aggregate): remove unhandled rejection when using aggregate.then() #4824
  • perf: remove try/catch that kills optimizer #4821
  • fix(model): handles populating with discriminators that may not have a ref #4817
  • fix(document): handle setting array of discriminators #3575
4.7.5-pre December 26, 2016  
4.7.4 December 20, 2016
  • docs: fix typo #4810 GEEKIAM
  • fix(query): timestamps with $push + $each #4805
  • fix(document): handle buffers correctly in minimize #4800
  • fix: don't disallow overwriting default and cast fns #4795 pdspicer
  • fix(document): don't convert single nested docs to POJOs #4793
  • fix(connection): handle reconnect to replica set correctly #4972 gfzabarino
4.7.3 December 16, 2016
  • fix: upgrade mongodb driver -> 2.2.16 for several bug fixes and 3.4 support #4799
  • fix(model): ensure discriminator key is correct for child schema on discriminator #4790
  • fix(document): handle mark valid in subdocs correctly #4778
  • fix(query): check for objects consistently #4775
4.7.2 December 08, 2016
  • test(populate): fix justOne test #4772 cblanc
  • chore: fix benchmarks #4769 billouboq
  • fix(document): handle setting subdoc to null after setting parent doc #4766
  • fix(query): support passRawResult with lean #4762 #4761 mhfrantz
  • fix(query): throw StrictModeError if upsert with nonexisting field in condition #4757
  • test: fix a couple of sort tests #4756 japod
  • chore: upgrade mongodb driver -> 2.2.12 #4753 mdlavin
  • fix(query): handle update with upsert and overwrite correctly #4749
4.7.1 December 01, 2016
  • fix(schema): throw error if you use prototype as a schema path #4746
  • fix(schema): throw helpful error if you define a virtual with the same path as a real path #4744
  • fix(connection): make createConnection not throw rejected promises #4742
  • fix(populate): allow specifiying options in model schema #4741
  • fix(document): handle selected nested elements with defaults #4739
  • fix(query): add model to cast error if possible #4729
  • fix(query): handle timestamps with overwrite #4054
4.7.0 November 23, 2016
  • docs: clean up schematypes #4732 kidlj
  • perf: only get stack when necessary with VersionError #4726 Sebmaster
  • fix(query): ensure correct casting when setting array element #4724
  • fix(connection): ensure db name gets set when you pass 4 params #4721
  • fix: prevent TypeError in node v7 #4719 #4706
  • feat(document): support .set() on virtual subpaths #4716
  • feat(populate): support populate virtuals on nested schemas #4715
  • feat(querycursor): support transform option and .map() #4714 #4705 cblanc
  • fix(document): dont set defaults on not-selected nested paths #4707
  • fix(populate): don't throw if empty string passed to populate #4702
  • feat(model): add loadClass() function for importing schema from ES6 class #4668 rockmacaca
4.6.8 November 15, 2016
  • fix(querycursor): clear stack when iterating onto next doc #4697
  • fix: handle null keys in validation error #4693 #4689 arciisine
  • fix(populate): handle pre init middleware correctly with populate virtuals #4683
  • fix(connection): ensure consistent return value for open and openSet #4659
  • fix(schema): handle falsy defaults for arrays #4620
4.6.7 November 10, 2016
  • fix(document): only invalidate in subdoc if using update validators #4681
  • fix(document): don't create subdocs when excluded in projection #4669
  • fix(document): ensure single embedded schema validator runs with correct context #4663
  • fix(document): make sure to depopulate top level for sharding #4658
  • fix(connection): throw more helpful error when .model() called incorrectly #4652
  • fix(populate): throw more descriptive error when trying to populate a virtual that doesn't have proper options #4602
  • fix(document): ensure subtype gets set properly when saving with a buffer id #4506
  • fix(query): handle setDefaultsOnInsert with defaults on doc arrays #4456
  • fix(drivers): make debug output better by calling toBSON() #4356
4.6.6 November 03, 2016
  • chore: upgrade deps #4674 TrejGun
  • chore: run tests on node v7 #4673 TrejGun
  • perf: make setDefaultsOnInsert more efficient if upsert is off #4672 CamHenlin
  • fix(populate): ensure document array is returned #4656
  • fix(query): cast doc arrays with positionals correctly for update #4655
  • fix(document): ensure single nested doc validators run with correct context #4654
  • fix: handle reconnect failed error in new version of driver #4653 loris
  • fix(populate): if setting a populated doc, take its id #4632
  • fix(populate): handle populated virtuals in init #4618
4.6.5 October 24, 2016
  • docs: fix grammar issues #4642 #4640 #4639 silvermanj7
  • fix(populate): filter out nonexistant values for dynref #4637
  • fix(query): handle $type as a schematype operator #4632
  • fix(schema): better handling for uppercase: false and lowercase: false #4622
  • fix(query): don't run transforms on updateForExec() #4621
  • fix(query): handle id = 0 in findById #4610
  • fix(query): handle buffers in mergeClone #4609
  • fix(document): handle undefined with conditional validator for validateSync #4607
  • fix: upgrade to mongodb driver 2.2.11 #4581
  • docs(schematypes): clarify schema.path() #4518
  • fix(query): ensure path is defined before checking in timestamps #4514
  • fix(model): set version key in upsert #4505
  • fix(document): never depopulate top-level doc #3057
  • refactor: ensure sync for setting non-capped collections #2690
4.6.4 October 17, 2016
  • fix(query): cast $not correctly #4616 #4592 prssn
  • fix: address issue with caching global plugins #4608 #4601 TrejGun
  • fix(model): make sure to depopulate in insertMany #4590
  • fix(model): buffer autoIndex if bufferCommands disabled #4589
  • fix(populate): copy ids array before modifying #4585
  • feat(schema): add retainKeyOrder prop #4542
  • fix(document): return isModified true for children of direct modified paths #4528
  • fix(connection): add dropDatabase() helper #4490
  • fix(model): add usePushEach option for schemas #4455
  • docs(connections): add some warnings about buffering #4413
  • fix: add ability to set promise implementation in browser #4395
4.6.3 October 06, 2016
  • fix(document): ensure single nested docs get initialized correctly when setting nested paths #4578
  • fix: turn off transforms when writing nested docs to db #4574
  • fix(document): don't set single nested subdocs to null when removing parent doc #4566
  • fix(model): ensure versionKey gets set in insertMany #4561
  • fix(schema): handle typeKey in arrays #4548
  • feat(schema): set $implicitlyCreated on schema if created by interpretAsType #4443
4.6.2 October 01, 2016
  • chore: upgrade to async 2.0.1 internally #4579 billouboq
  • fix(types): ensure nested single doc schema errors reach update validators #4557 #4519
  • fix(connection): handle rs names with leading numbers (muri 1.1.1) #4556
  • fix(model): don't throw if method name conflicts with Object.prototype prop #4551
  • docs: fix broken link #4544 VFedyk
  • fix: allow overwriting model on mongoose singleton #4541 Nainterceptor
  • fix(document): don't use init: true when building doc defaults #4540
  • fix(connection): use replSet option if replset not specified #4535
  • fix(query): cast $not objects #4495
4.6.1 September 20, 2016
  • fix(query): improve handling of $not with $elemMatch #4531 #3719 timbowhite
  • fix: upgrade mongodb -> 2.2.10 #4517
  • chore: fix webpack build issue #4512 saiichihashimoto
  • fix(query): emit error on next tick when exec callback errors #4500
  • test: improve test case #4496 isayme
  • fix(schema): use same check for array types and top-level types #4493
  • style: fix indentation in docs #4489 dhurlburtusa
  • fix(schema): expose original object passed to constructor #4486
  • fix(query): handle findOneAndUpdate with array of arrays #4484 #4470 fedotov
  • feat(document): add $ignore to make a path ignored #4480
  • fix(query): properly handle setting single embedded in update #4475 #4466 #4465
  • fix(updateValidators): handle single nested schema subpaths correctly #4479
  • fix(model): throw handy error when method name conflicts with property name #4475
  • fix(schema): handle .set() with array field #4472
  • fix(query): check nested path when avoiding double-validating Mixed #4441
  • fix(schema): handle calling path.trim() with no args correctly #4042
4.6.0 September 02, 2016
  • docs(document): clarify the findById and findByIdAndUpdate examples #4471 mdcanham
  • docs(schematypes): add details re: options #4452
  • docs(middleware): add docs for insertMany hooks #4451
  • fix(schema): create new array when copying from existing object to preserve change tracking #4449
  • docs: fix typo in index.jade #4448
  • fix(query): allow array for populate options #4446
  • fix(model): create should not cause unhandle reject promise #4439
  • fix: upgrade to mongodb driver 2.2.9 #4363 #4341 #4311 (see comments here if you use node 0.10)
4.5.10 August 23, 2016
  • docs: fix typo on documents.jade #4444 Gabri3l
  • chore: upgrade mocha to 3.0.2 #4437 TrejGun
  • fix: subdocuments causing error with parent timestamp on update #4434 dyang108
  • fix(query): don't crash if timestamps on and update doesn't have a path #4425 #4424 #4418
  • fix(query): ensure single nested subdoc is hydrated when running update validators #4420
  • fix(query): cast non-$geometry operators for $geoWithin #4419
  • docs: update contributor count #4415 AdamZaczek
  • docs: add more clarification re: the index event #4410
  • fix(document): only skip modifying subdoc path if parent is direct modified #4405
  • fix(schema): throw cast error if provided date invalid #4404
  • feat(error): use util.inspect() so CastError never prints "[object Object]" #4398
  • fix(model): dont error if the discriminator key is unchanged #4387
  • fix(query): don't throw unhandled rejection with bluebird when using cbs #4379
4.5.9 August 14, 2016
  • docs: add mixed schema doc for Object literal #4400 Kikobeats
  • fix(query): cast $geoWithin and convert mongoose objects to POJOs before casting #4392
  • fix(schematype): dont cast defaults without parent doc #4390
  • fix(query): disallow passing empty string to findOne() #4378
  • fix(document): set single nested doc isNew correctly #4369
  • fix(types): checks field name correctly with nested arrays and populate #4365
  • fix(drivers): make debug output copy-pastable into mongodb shell #4352
  • fix(services): run update validators on nested paths #4332
  • fix(model): handle typeKey with discriminators #4339
  • fix(query): apply timestamps to child schemas when explicitly specified in update #4049
  • fix(schema): set prefix as nested path with add() #1730
4.5.8 August 01, 2016
  • fix(model): make changing the discriminator key cause a cast error #4374
  • fix(query): pass projection fields to cursor #4371 #4342 Corei13
  • fix(document): support multiple paths for isModified #4370 adambuczynski
  • fix(querycursor): always cast fields before returning cursor #4355
  • fix(query): support projection as alias for fields in findOneAndUpdate #4315
  • fix(schema): treat index false + unique false as no index #4304
  • fix(types): dont mark single nested subpath as modified if whole doc already modified #4224
4.5.7 July 25, 2016
  • fix(document): ensure no unhandled rejections if callback specified for save #4364
4.5.6 July 23, 2016
  • fix(schema): don't overwrite createdAt if it isn't selected #4351 tusbar
  • docs(api): fix link to populate() and add a new one from depopulate() #4345 Delapouite
  • fix(types): ownerDocument() works properly with single nested docs #4344 vichle
  • fix(populate): dont use findOne when justOne option set #4329
  • fix(document): dont trigger .then() deprecated warning when calling doc.remove() #4291
  • docs(connection): add promiseLibrary option #4280
  • fix(plugins): apply global plugins to subschemas #4271
  • fix(model): ensure ensureIndex() never calls back in the same tick #4246
  • docs(schema): improve post hook docs on schema #4238
4.5.5 July 18, 2016
  • fix(document): handle setting root to empty obj if minimize false #4337
  • fix: downgrade to mongodb 2.1.18 #4335 #4334 #4328 #4323
  • perf(types): remove defineProperty usage in documentarray #4333
  • fix(query): correctly pass model in .toConstructor() #4318
  • fix(services): avoid double-validating mixed types with update validators #4305
  • docs(middleware): add docs describing error handling middleware #4229
  • fix(types): throw correct error when invalidating doc array #3602
4.5.4 July 11, 2016
  • fix(types): fix removing embedded documents #4309 RoCat
  • docs: various docs improvements #4302 #4294 simonxca
  • fix: upgrade mongodb -> 2.1.21 #4295 #4202 RoCat
  • fix(populate): convert single result to array for virtual populate because of lean #4288
  • fix(populate): handle empty results for populate virtuals properly #4285 #4284
  • fix(query): dont cast $inc to number if type is long #4283
  • fix(types): allow setting single nested doc to null #4281
  • fix(populate): handle deeply nested virtual populate #4278
  • fix(document): allow setting empty obj if strict mode is false #4274
  • fix(aggregate): allow passing obj to .unwind() #4239
  • docs(document): add return statements to transform examples #1963
4.5.3 July 01, 2016
  • fix(query): pass correct options to QueryCursor #4277 #4266
  • fix(querycursor): handle lean option correctly #4276 gchudnov
  • fix(document): fix error handling when no error occurred #4275
  • fix(error): use strict mode for version error #4272
  • docs(populate): fix crashing compilation for populate.jade #4267
  • fix(populate): support justOne option for populate virtuals #4263
  • fix(populate): ensure model param gets used for populate virtuals #4261 #4243
  • fix(querycursor): add ability to properly close the cursor #4258
  • docs(model): correct link to Document #4250
  • docs(populate): correct path for refPath populate #4240
  • fix(document): support validator.isEmail as validator #4064
4.5.2 June 25, 2016
  • fix(connection): add checks for collection presence for onOpen and onClose #4259 nodkz
  • fix(cast): allow strings for $type operator #4256
  • fix(querycursor): support lean() #4255 pyramation
  • fix(aggregate): allow setting noCursorTimeout option #4241
  • fix(document): handle undefined for Array.pull #4222 Sebmaster
  • fix(connection): ensure promise.catch() catches initial connection error #4135
  • fix(document): show additional context for VersionError #2633
4.5.1 June 18, 2016
  • fix(model): ensure wrapped insertMany() returns a promise #4237
  • fix(populate): dont overwrite populateVirtuals when populating multiple paths #4234
  • docs(model): clarify relationship between create() and save() #4233
  • fix(types): handle option param in subdoc remove() #4231 tdebarochez
  • fix(document): dedupe modified paths #4226 #4223 adambuczynski
  • fix(model): don't modify user-provided options object #4221
  • fix(document): handle setting nested path to empty object #4218 #4182
  • fix(document): clean subpaths when removing single nested #4216
  • fix(document): don't force transform on subdocs with inspect #4213
  • fix(error): allow setting .messages object #4207
4.5.0 June 13, 2016
  • feat(query): added Query.prototype.catch() #4215 #4173 adambuczynski
  • feat(query): add Query.prototype.cursor() as a .stream() alternative #4117 #3637 #1907
  • feat(document): add markUnmodified() function #4092 vincentcr
  • feat(aggregate): convert aggregate object to a thenable #3995 #3946 megagon
  • 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
  • feat(model): add hooks for insertMany() #3846
  • feat(schema): add support for custom query methods #3740 #2372
  • feat(drivers): emit error on 'serverClosed' because that means that reconnect failed #3615
  • feat(model): emit error event when callback throws exception #3499
  • feat(model): inherit options from discriminator base schema #3414 #1818
  • feat(populate): expose mongoose-populate-virtuals inspired populate API #2562
  • feat(document): trigger remove hooks on subdocs when removing parent #2348
  • feat(schema): add support for express-style error handling middleware #2284
  • fix(model): disallow setting discriminator key #2041
  • feat(schema): add support for nested arrays #1361
4.4.20 June 05, 2016
  • docs: clarify command buffering when using driver directly #4195
  • fix(promise): correct broken mpromise .catch() #4189
  • fix(document): clean modified subpaths when set path to empty obj #4182
  • fix(query): support minDistance with query casting and .near() #4179
  • fix(model): remove unnecessary .save() promise #4177
  • fix(schema): cast all valid ObjectId strings to object ids #3365
  • docs: remove unclear "unsafe" term in query docs #3282
4.4.19 May 21, 2016
  • fix(model): handle insertMany if timestamps not set #4171
4.4.18 May 21, 2016
  • docs: add missing period #4170 gitname
  • docs: change build badge to svg #4158 a0viedo
  • fix(model): update timestamps when setting createdAt #4155
  • fix(utils): make sure to require in document properly #4152
  • fix(model): throw overwrite error when discriminator name conflicts #4148
4.4.17 May 13, 2016
  • docs: remove repetition in QueryStream docs #4147 hugoabonizio
  • fix(document): dont double-validate doc array elements #4145
  • fix(document): call required function with correct scope #4142 JedWatson
4.4.16 May 09, 2016
  • refactor(document): use function reference #4133 dciccale
  • docs(querystream): clarify destroy() and close event #4126 AnthonyCC
  • test: make before hook fail fast if it can't connect #4121
  • docs: add description of CastError constructor params #4120
  • fix(schematype): ensure single embedded defaults have $parent #4115
  • fix(document): mark nested paths for validation #4111
  • fix(schema): make sure element is always a subdoc in doc array validation #3816
4.4.15 May 06, 2016
  • fix(schema): support overwriting array default #4109
  • fix(populate): assign values when resolving each populate #4104
  • fix(aggregate): dont send async option to server #4101
  • fix(model): ensure isNew set to false after insertMany #4099
  • fix(connection): emit on error if listeners and no callback #4098
  • fix(document): treat required fn that returns false as required: false #4094
4.4.14 April 27, 2016
  • fix: upgrade mongodb -> 2.1.18 #4102
  • feat(connection): allow setting mongos as a uri query param #4093 #4035 burtonjc
  • fix(populate): make sure to use correct assignment order for each model #4073
  • fix(schema): add complete set of geospatial operators for single embedded subdocs #4014
4.4.13 April 21, 2016
  • docs: add docs favicons #4082 robertjustjones
  • docs(model): correct Model.remove() return value #4075 Jokero
  • fix(query): add $geoWithin query casting for single embedded docs #4044
  • fix(schema): handle setting trim option to falsy #4042
  • fix(query): handle setDefaultsOnInsert with empty update #3835
4.4.12 April 08, 2016
  • docs(query): document context option for update and findOneAndUpdate #4055
  • docs(query): correct link to $geoWithin docs #4050
  • fix(project): upgrade to mongodb driver 2.1.16 #4048 schmalliso
  • docs(validation): fix validation docs #4028
  • fix(types): improve .id() check for document arrays #4011
  • fix(query): remove premature return when using $rename #3171
  • docs(connection): clarify relationship between models and connections #2157
4.4.11 April 03, 2016
  • fix: upgrade to mongodb driver 2.1.14 #4036 #4030 #3945
  • fix(connection): allow connecting with { mongos: true } to handle query params #4032 burtonjc
  • docs(connection): add autoIndex example #4026 tilleps
  • fix(query): handle passRawResult option when zero results #4023
  • fix(populate): clone options before modifying #4022
  • docs: add missing whitespace #4019 chenxsan
  • chore: upgrade to ESLint 2.4.0 #4015 ChristianMurphy
  • fix(types): single nested subdocs get ids by default #4008
  • chore(project): add dependency status badge #4007 Maheshkumar-Kakade
  • fix: make sure timestamps don't trigger unnecessary updates #4005 #3991 tommarien
  • fix(document): inspect inherits schema options #4001
  • fix(populate): don't mark populated path as modified if setting to object w/ same id #3992
  • fix(document): support kind argument to invalidate #3965
4.4.10 March 24, 2016
  • fix(document): copy isNew when copying a document #3982
  • fix(document): don't override defaults with undefined keys #3981
  • fix(populate): merge multiple deep populate options for the same path #3974
4.4.9 March 23, 2016
4.4.8 March 18, 2016
  • docs(aggregate): clarify promises #3990 megagon
  • fix: upgrade mquery -> 1.10 #3988 matskiv
  • feat(connection): 'all' event for repl sets #3986 xizhibei
  • docs(types): clarify Array.pull #3985 seriousManual
  • feat(query): support array syntax for .sort() via mquery 1.9 #3980
  • fix(populate): support > 3 level nested populate #3973
  • fix: MongooseThenable exposes connection correctly #3972
  • docs(connection): add note about reconnectTries and reconnectInterval #3969
  • feat(document): invalidate returns the new validationError #3964
  • fix(query): .eq() as shorthand for .equals #3953 Fonger
  • docs(connection): clarify connection string vs passed options #3941
  • docs(query): select option for findOneAndUpdate #3933
  • fix(error): ValidationError.properties no longer enumerable #3925
  • docs(validation): clarify how required validators work with nested schemas #3915
  • fix: upgrade mongodb driver -> 2.1.8 to make partial index errors more sane #3864
4.4.7 March 11, 2016
  • fix(query): stop infinite recursion caused by merging a mongoose buffer #3961
  • fix(populate): handle deep populate array -> array #3954
  • fix(schema): allow setting timestamps with .set() #3952 #3951 #3907 Fonger
  • fix: MongooseThenable doesn't overwrite constructors #3940
  • fix(schema): don't cast boolean to date #3935
  • fix(drivers): support sslValidate in connection string #3929
  • fix(types): correct markModified() for single nested subdocs #3910
  • fix(drivers): catch and report any errors that occur in driver methods #3906
  • fix(populate): get subpopulate model correctly when array under nested #3904
  • fix(document): allow fields named 'pre' and 'post' #3902
  • docs(query): clarify runValidators and setDefaultsOnInsert options #3892
  • docs(validation): show how to use custom required messages in schema #2616
4.4.6 March 03, 2016
  • fix: upgrade mongodb driver to 2.1.7 #3938
  • docs: fix plugins link #3917 #3909 fbertone
  • fix(query): sort+select with count works #3914
  • fix(query): improve mergeUpdate's ability to handle nested docs #3890
4.4.5 February 24, 2016
  • fix(query): ability to select a length field (upgrade to mquery 1.7.0) #3903
  • fix: include nested CastError as reason for array CastError #3897 kotarou3
  • fix(schema): check for doc existence before taking fields #3889
  • feat(schema): useNestedStrict option to take nested strict mode for update #3883
  • docs(validation): clarify relationship between required and checkRequired #3822
  • docs(populate): dynamic reference docs #3809
  • docs: expand dropdown when clicking on file name #3807
  • docs: plugins.mongoosejs.io is up #3127
  • fix(schema): ability to add a virtual with same name as removed path #2398
4.4.4 February 17, 2016
  • fix(schema): handle field selection when casting single nested subdocs #3880
  • fix(populate): populating using base model with multiple child models in result #3878
  • fix: ability to properly use return value of mongoose.connect() #3874
  • fix(populate): dont hydrate populated subdoc if lean option set #3873
  • fix(connection): dont re-auth if already connected with useDb #3871
  • docs: cover how to set underlying driver's promise lib #3869
  • fix(document): handle conflicting names in validation errors with subdocs #3867
  • fix(populate): set undefined instead of null consistently when populate couldn't find results #3859
  • docs: link to execPopulate() in doc.populate() docs #3836
  • docs(plugin): link to the mongoose.plugin() function #3732
4.4.3 February 09, 2016
  • fix: upgrade to mongodb 2.1.6 to remove kerberos log output #3861 #3860 cartuchogl
  • fix: require('mongoose') is no longer a pseudo-promise #3856
  • fix(query): update casting for single nested docs #3820
  • fix(populate): deep populating multiple paths with same options #3808
  • docs(middleware): clarify save/validate hook order #1149
4.4.2 February 05, 2016
  • fix(aggregate): handle calling .cursor() with no options #3855
  • fix: upgrade mongodb driver to 2.1.5 for GridFS memory leak fix #3854
  • docs: fix schematype.html conflict #3853 #3850 #3843
  • fix(model): bluebird unhandled rejection with ensureIndexes() on init #3837
  • docs: autoIndex option for createConnection #3805
4.4.1 February 03, 2016
  • fix: linting broke some cases where we use == null as shorthand #3852
  • docs: fix up schematype.html conflict #3848 #3843 mynameiscoffey
  • fix: backwards breaking change with .connect() return value #3847
  • docs: downgrade dox and highlight.js to fix docs build #3845
  • docs: clean up typo #3842 Flash-
  • fix(document): storeShard handles undefined values #3841
  • chore: more linting #3838 TrejGun
  • fix(schema): handle text: true as a way to declare a text index #3824
4.4.0 February 02, 2016
  • docs: fix expireAfterSeconds index option name #3831 Flash-
  • chore: run lint after test #3829 ChristianMurphy
  • chore: use power-assert instead of assert #3828 TrejGun
  • chore: stricter lint #3827 TrejGun
  • feat(types): casting moment to date #3813 TrejGun
  • chore: comma-last lint for test folder #3810 ChristianMurphy
  • fix: upgrade async mpath, mpromise, muri, and sliced #3801 TrejGun
  • fix(query): geo queries now return proper ES2015 promises #3800 TrejGun
  • perf(types): use Object.defineProperties() for array #3799 TrejGun
  • fix(model): mapReduce, ensureIndexes, remove, and save properly return ES2015 promises #3795 #3628 #3595 TrejGun
  • docs: fixed dates in History.md #3791 Jokero
  • feat: connect, open, openSet, and disconnect return ES2015 promises #3790 #3622 TrejGun
  • feat: custom type for int32 via mongoose-int32 npm package #3652 #3102
  • feat: basic custom schema type API #995
  • feat(model): insertMany() for more performant bulk inserts #723
4.3.7 January 23, 2016
  • docs: grammar fix in timestamps docs #3786 zclancy
  • fix(document): setting nested populated docs #3783 slamuu
  • fix(document): don't call post save hooks twice for pushed docs #3780
  • fix(model): handle _id=0 correctly #3776
  • docs(middleware): async post hooks #3770
  • docs: remove confusing sentence #3765 marcusmellis89
4.3.6 January 15, 2016
  • fix(types): casting a number to a buffer #3764
  • fix: add "listener" to reserved keywords #3759
  • chore: upgrade uglify #3757 ChristianMurphy
  • fix: broken execPopulate() in 4.3.5 #3755 #3753
  • fix: ability to remove() a single embedded doc #3754
  • style: comma-last in test folder #3751 ChristianMurphy
  • docs: clarify versionKey option #3747
  • fix: improve colorization for arrays #3744 TrejGun
  • fix: webpack build #3713
4.3.5 January 09, 2016
  • fix(query): throw when 4th parameter to update not a function #3741 kasselTrankos
  • fix(document): separate error type for setting an object to a primitive #3735
  • fix(populate): Model.populate returns ES6 promise #3734
  • fix(drivers): re-register event handlers after manual reconnect #3729
  • docs: broken links #3727
  • fix(validation): update validators run array validation #3724
  • docs: clarify the need to use markModified with in-place date ops #3722
  • fix(document): mark correct path as populated when manually populating array #3721
  • fix(aggregate): support for array pipeline argument to append #3718 dbkup
  • docs: clarify .connect() callback #3705
  • fix(schema): properly validate nested single nested docs #3702
  • fix(types): handle setting documentarray of wrong type #3701
  • docs: broken links #3700
  • fix(drivers): debug output properly displays '0' #3689
4.3.4 December 23, 2015
  • fix: upgrade mongodb driver to 2.1.2 for repl set error #3712 sansmischevia
  • docs: validation docs typo #3709 ivanmaeder
  • style: remove unused variables #3708 ChristianMurphy
  • fix(schema): duck-typing for schemas #3703 mgcrea
  • docs: connection sample code issue #3697
  • fix(schema): duck-typing for schemas #3693 mgcrea
  • docs: clarify id schema option #3638
4.3.3 December 18, 2015
  • fix(connection): properly support 'replSet' as well as 'replset' #3688 taxilian
  • fix(document): single nested doc pre hooks called before nested doc array #3687 aliatsis
4.3.2 December 17, 2015
  • fix(document): .set() into single nested schemas #3686
  • fix(connection): support 'replSet' as well as 'replset' option #3685
  • fix(document): bluebird unhandled rejection when validating doc arrays #3681
  • fix(document): hooks for doc arrays in single nested schemas #3680
  • fix(document): post hooks for single nested schemas #3679
  • fix: remove unused npm module #3674 sybarite
  • fix(model): don't swallow exceptions in nested doc save callback #3671
  • docs: update keepAlive info #3667 ChrisZieba
  • fix(document): strict 'throw' throws a specific mongoose error #3662
  • fix: flakey test #3332
  • fix(query): more robust check for RegExp #2969
4.3.1 December 11, 2015
  • feat(aggregate): .sample() helper #3665
  • fix(query): bitwise query operators with buffers #3663
  • docs(migration): clarify new option and findByIdAndUpdate #3661
4.3.0 December 09, 2015
  • feat(query): support for mongodb 3.2 bitwise query operators #3660
  • style: use comma-last style consistently #3657 ChristianMurphy
  • feat: upgrade mongodb driver to 2.1.0 for full MongoDB 3.2 support #3656
  • feat(aggregate): .lookup() helper #3532
4.2.10 December 08, 2015
  • fixed; upgraded marked #3653 ChristianMurphy
  • docs; cross-db populate #3648
  • docs; update mocha URL #3646 ojhaujjwal
  • fixed; call close callback asynchronously #3645
  • docs; virtuals.html issue #3644 Psarna94
  • fixed; single embedded doc casting on init #3642
  • docs; validation docs improvements #3640
4.2.9 December 02, 2015
  • docs; defaults docs #3625
  • fix; nested numeric keys causing an embedded document crash #3623
  • fix; apply path getters before virtual getters #3618
  • fix; casting for arrays in single nested schemas #3616
4.2.8 November 25, 2015
  • docs; clean up README links #3612 ReadmeCritic
  • fix; ESLint improvements #3605 ChristianMurphy
  • fix; assigning single nested subdocs #3601
  • docs; describe custom logging functions in mongoose.set() docs #3557
4.2.7 November 20, 2015
  • fixed; readPreference connection string option #3600
  • fixed; pulling from manually populated arrays #3598 #3579
  • docs; FAQ about OverwriteModelError #3597 stcruy
  • fixed; setting single embedded schemas to null #3596
  • fixed; indexes for single embedded schemas #3594
  • docs; clarify projection for findOne() #3593 gunar
  • fixed; .ownerDocument() method on single embedded schemas #3589
  • fixed; properly throw casterror for query on single embedded schema #3580
  • upgraded; mongodb driver -> 2.0.49 for reconnect issue fix #3481
4.2.6 November 16, 2015
  • fixed; ability to manually populate an array #3575
  • docs; clarify isAsync parameter to hooks #3573
  • fixed; use captureStackTrace if possible instead #3571
  • fixed; crash with buffer and update validators #3565 johnpeb
  • fixed; update casting with operators overwrite: true #3564
  • fixed; validation with single embedded docs #3562
  • fixed; inline docs inherit parents $type key #3560
  • docs; bad grammar in populate docs #3559 amaurymedeiros
  • fixed; properly handle populate option for find() #2321
4.2.5 November 09, 2015
  • fixed; handle setting fields in pre update hooks with exec #3549
  • upgraded; ESLint #3547 ChristianMurphy
  • fixed; bluebird unhandled rejections with cast errors and .exec #3543
  • fixed; min/max validators handling undefined #3539
  • fixed; standalone mongos connections #3537
  • fixed; call .toObject() when setting a single nested doc #3535
  • fixed; single nested docs now have methods #3534
  • fixed; single nested docs with .create() #3533 #3521 tusbar
  • docs; deep populate docs #3528
  • fixed; deep populate schema ref handling #3507
  • upgraded; mongodb driver -> 2.0.48 for sort overflow issue #3493
  • docs; clarify default ids for discriminators #3482
  • fixed; properly support .update(doc) #3221
4.2.4 November 02, 2015
  • fixed; upgraded ms package for security vulnerability #3524 fhemberger
  • fixed; ESlint rules #3517 ChristianMurphy
  • docs; typo in aggregation docs #3513 rafakato
  • fixed; add dontThrowCastError option to .update() for promises #3512
  • fixed; don't double-cast buffers in node 4.x #3510 #3496
  • fixed; population with single embedded schemas #3501
  • fixed; pre('set') hooks work properly #3479
  • docs; promises guide #3441
4.2.3 October 27, 2015
  • docs; remove unreferenced function in middleware.jade #3506
  • fixed; handling auth with no username/password #3500 #3498 #3484 mleanos
  • fixed; more ESlint rules #3491 ChristianMurphy
  • fixed; swallowing exceptions in save callback #3478
  • docs; fixed broken links in subdocs guide #3477
  • fixed; casting booleans to numbers #3475
  • fixed; report CastError for subdoc arrays in findOneAndUpdate #3468
  • fixed; geoNear returns ES6 promise #3458
4.2.2 October 22, 2015
  • fixed; go back to old pluralization code #3490
4.2.1 October 22, 2015
4.2.0 October 22, 2015
  • added; support for skipVersioning for document arrays #3467 chazmo03
  • added; ability to customize schema 'type' key #3459 #3245
  • fixed; writeConcern for index builds #3455
  • added; emit event when individual index build starts #3440 objectiveSee
  • added; 'context' option for update validators #3430
  • refactor; pluralization now in separate pluralize-mongoose npm module #3415 ChristianMurphy
  • added; customizable error validation messages #3406 geronime
  • added; support for passing 'minimize' option to update #3381
  • added; ability to customize debug logging format #3261
  • added; baseModelName property for discriminator models #3202
  • added; 'emitIndexErrors' option #3174
  • added; 'async' option for aggregation cursor to support buffering #3160
  • added; ability to skip validation for individual save() calls #2981
  • added; single embedded schema support #2689 #585
  • added; depopulate function #2509
4.1.12 October 19, 2015
  • docs; use readPreference instead of slaveOk for Query.setOptions docs #3471 buunguyen
  • fixed; more helpful error when regexp contains null bytes #3456
  • fixed; x509 auth issue #3454 NoxHarmonium
4.1.11 October 13, 2015
  • fixed; update timestamps for update() if they're enabled #3450 isayme
  • fixed; unit test error on node 0.10 #3449 isayme
  • docs; timestamp option docs #3448 isayme
  • docs; fix unexpected indent #3443 isayme
  • fixed; use ES6 promises for Model.prototype.remove() #3442
  • fixed; don't use unused 'safe' option for index builds #3439
  • fixed; elemMatch casting bug #3437 #3435 DefinitelyCarter
  • docs; schema.index docs #3434
  • fixed; exceptions in save() callback getting swallowed on mongodb 2.4 #3371
4.1.10 October 05, 2015
  • docs; improve virtuals docs to explain virtuals schema option #3433 zoyaH
  • docs; MongoDB server version compatibility guide #3427
  • docs; clarify that findById and findByIdAndUpdate fire hooks #3422
  • docs; clean up Model.save() docs #3420
  • fixed; properly handle projection with just id #3407 #3412
  • fixed; infinite loop when database document is corrupted #3405
  • docs; clarify remove middleware #3388
4.1.9 September 28, 2015
  • docs; minlength and maxlength string validation docs #3368 #3413 cosmosgenius
  • fixed; linting for infix operators #3397 ChristianMurphy
  • fixed; proper casting for $all #3394
  • fixed; unhandled rejection warnings with .create() #3391
  • docs; clarify update validators on paths that aren't explicitly set #3386
  • docs; custom validator examples #2778
4.1.8 September 21, 2015
  • docs; fixed typo in example #3390 kmctown
  • fixed; error in toObject() #3387 guumaster
  • fixed; handling for casting null dates #3383 alexmingoia
  • fixed; passing composite ids to findByIdAndUpdate #3380
  • fixed; linting #3376 #3375 ChristianMurphy
  • fixed; added NodeJS v4 to Travis #3374 ChristianMurphy
  • fixed; casting $elemMatch inside of $not #3373 gaguirre
  • fixed; handle case where $slice is 0 #3369
  • fixed; avoid running getters if path is populated #3357
  • fixed; cast documents to objects when setting to a nested path #3346
4.1.7 September 14, 2015
  • docs; typos in SchemaType documentation #3367 jasson15
  • fixed; MONGOOSE_DRIVER_PATH env variable again #3360
  • docs; added validateSync docs #3353
  • fixed; set findOne op synchronously in query #3344
  • fixed; handling for .pull() on a documentarray without an id #3341
  • fixed; use natural order for cloning update conditions #3338
  • fixed; issue with strict mode casting for mixed type updates #3337
4.1.6 September 08, 2015
  • fixed; MONGOOSE_DRIVER_PATH env variable #3345 g13013
  • docs; global autoIndex option #3335 albertorestifo
  • docs; model documentation typos #3330
  • fixed; report reason for CastError #3320
  • fixed; .populate() no longer returns true after re-assigning #3308
  • fixed; discriminators with aggregation geoNear #3304
  • docs; discriminator docs #2743
4.1.5 September 01, 2015
  • fixed; document.remove() removing all docs #3326 #3325
  • fixed; connect() checks for rs_name in options #3299
  • docs; examples for schema.set() #3288
  • fixed; checkKeys issue with bluebird #3286 gregthegeek
4.1.4 August 31, 2015
  • fixed; ability to set strict: false for update #3305
  • fixed; .create() properly uses ES6 promises #3297
  • fixed; pre hooks on nested subdocs #3291 #3284 aliatsis
  • docs; remove unclear text in .remove() docs #3282
  • fixed; pre hooks called twice for 3rd-level nested doc #3281
  • fixed; nested transforms #3279
  • upgraded; mquery -> 1.6.3 #3278 #3272
  • fixed; don't swallow callback errors by default #3273 #3222
  • fixed; properly get nested paths from nested schemas #3265
  • fixed; remove() with id undefined deleting all docs #3260 thanpolas
  • fixed; handling for non-numeric projections #3256
  • fixed; findById with id undefined returning first doc #3255
  • fixed; use retainKeyOrder for update #3215
  • added; passRawResult option to findOneAndUpdate for backwards compat #3173
4.1.3 August 16, 2015
  • fixed; getUpdate() in pre update hooks #3520 gregthegeek
  • fixed; handleArray() ensures arg is an array #3238 jloveridge
  • fixed; refresh required path cache when recreating docs #3199
  • fixed; $ operator on unwind aggregation helper #3197
  • fixed; findOneAndUpdate() properly returns raw result as third arg to callback #3173
  • fixed; querystream with dynamic refs #3108
4.1.2 August 10, 2015
  • fixed; better handling for Jade templates #3241 kbadk
  • added; ESlint trailing spaces #3234 ChristianMurphy
  • added; ESlint #3191 ChristianMurphy
  • fixed; properly emit event on disconnect #3183
  • fixed; copy options properly using Query.toConstructor() #3176
  • fixed; setMaxListeners() issue in browser build #3170
  • fixed; node driver -> 2.0.40 to not store undefined keys as null #3169
  • fixed; update validators handle positional operator #3167
  • fixed; handle $all + $elemMatch query casting #3163
  • fixed; post save hooks don't swallow extra args #3155
  • docs; spelling mistake in index.jade #3154
  • fixed; don't crash when toObject() has no fields #3130
  • fixed; apply toObject() recursively for find and update queries #3086 naoina
4.1.1 August 03, 2015
  • fixed; aggregate exec() crash with no callback #3212 #3198 jpgarcia
  • fixed; pre init hooks now properly synchronous #3207 burtonjc
  • fixed; updateValidators doesn't flatten dates #3206 #3194 victorkohl
  • fixed; default fields don't make document dirty between saves #3205 burtonjc
  • fixed; save passes 0 as numAffected rather than undefined when no change #3195 burtonjc
  • fixed; better handling for positional operator in update #3185
  • fixed; use Travis containers #3181 ChristianMurphy
  • fixed; leaked variable #3180 ChristianMurphy
4.1.0 July 24, 2015
  • added; schema.queue() now public #3193
  • added; raw result as third parameter to findOneAndX callback #3173
  • added; ability to run validateSync() on only certain fields #3153
  • added; subPopulate #3103 timbur
  • added; $isDefault function on documents #3077
  • added; additional properties for built-in validator messages #3063 KLicheR
  • added; getQuery() and getUpdate() functions for Query #3013
  • added; export DocumentProvider #2996
  • added; ability to remove path from schema #2993 JohnnyEstilles
  • added; .explain() helper for aggregate #2714
  • added; ability to specify which ES6-compatible promises library mongoose uses #2688
  • added; export Aggregate #1910
4.0.8 July 20, 2015
  • fixed; assignment with document arrays #3178 rosston
  • docs; remove duplicate paragraph #3164 rhmeeuwisse
  • docs; improve findOneAndXYZ parameter descriptions #3159 rhmeeuwisse
  • docs; add findOneAndRemove to list of supported middleware #3158
  • docs; clarify ensureIndex #3156
  • fixed; refuse to save/remove document without id #3118
  • fixed; hooks next() no longer accidentally returns promise #3104
  • fixed; strict mode for findOneAndUpdate #2947
  • added; .min.js.gz file for browser component #2806
4.0.7 July 11, 2015
  • fixed; documentarray id method when using object id #3157 siboulet
  • docs; improve findById docs #3147
  • fixed; update validators handle null properly #3136 odeke-em
  • docs; jsdoc syntax errors #3128 rhmeeuwisse
  • docs; fix typo #3126 rhmeeuwisse
  • docs; proper formatting in queries.jade #3121 rhmeeuwisse
  • docs; correct example for string maxlength validator #3111 rhmeeuwisse
  • fixed; setDefaultsOnInsert with arrays #3107
  • docs; LearnBoost -> Automattic in package.json #3099
  • docs; pre update hook example #3094 danpe
  • docs; clarify query middleware example #3051
  • fixed; ValidationErrors in strict mode #3046
  • fixed; set findOneAndUpdate properties before hooks run #3024
4.0.6 June 21, 2015
  • upgraded; node driver -> 2.0.34 #3087
  • fixed; apply setters on addToSet, etc #3067 victorkohl
  • fixed; missing semicolons #3065 sokolikp
  • fixed; proper handling for async doc hooks #3062 gregthegeek
  • fixed; dont set failed populate field to null if other docs are successfully populated #3055 eloytoro
  • fixed; setDefaultsOnInsert with document arrays #3034 taxilian
  • fixed; setters fired on array items #3032
  • fixed; stop validateSync() on first error #3025 victorkohl
  • docs; improve query docs #3016
  • fixed; always exclude _id when its deselected #3010
  • fixed; enum validator kind property #3009
  • fixed; mquery collection names #3005
  • docs; clarify mongos option #3000
  • docs; clarify that query builder has a .then() #2995
  • fixed; race condition in dynamic ref #2992
4.0.5 June 06, 2015
  • fixed; ObjectIds and buffers when mongodb driver is a sibling dependency #3050 #3048 #3040 #3031 #3020 #2988 #2951
  • fixed; warn user when 'increment' is used in schema #3039
  • fixed; setDefaultsOnInsert with array in schema #3035
  • fixed; dont use default Object toString to cast to string #3030
  • added; npm badge #3020 odeke-em
  • fixed; proper handling for calling .set() with a subdoc #2782
  • fixed; dont throw cast error when using $rename on non-string path #1845
4.0.4 May 28, 2015
  • docs; findAndModify new parameter correct default value #3012 JonForest
  • docs; clarify pluralization rules #2999 anonmily
  • fix; discriminators with schema methods #2978
  • fix; make isModified a schema reserved keyword #2975
  • fix; properly fire setters when initializing path with object #2943
  • fix; can use setDefaultsOnInsert without specifying runValidators #2938
  • fix; always set validation errors kind property #2885
  • upgraded; node driver -> 2.0.33 #2865
4.0.3 May 13, 2015
  • upgraded; mquery -> 1.5.1 #2983
  • docs; clarify context for query middleware #2974
  • docs; fix missing type -> kind rename in History.md #2961
  • fixed; broken ReadPreference include on Heroku #2957
  • docs; correct form for cursor aggregate option #2955
  • fixed; sync post hooks now properly called after function #2949 #2925
  • fixed; fix sub-doc validate() function #2929
  • upgraded; node driver -> 2.0.30 #2926
  • docs; retainKeyOrder for save() #2924
  • docs; fix broken class names #2913
  • fixed; error when using node-clone on a doc #2909
  • fixed; no more hard references to bson #2908 #2906
  • fixed; dont overwrite array values #2907 naoina
  • fixed; use readPreference=primary for findOneAndUpdate #2899 #2823
  • docs; clarify that update validators only run on $set and $unset #2889
  • fixed; set kind consistently for built-in validators #2885
  • docs; single field populated documents #2884
  • fixed; nested objects are now enumerable #2880 toblerpwn
  • fixed; properly populate field when ref, lean, stream used together #2841
  • docs; fixed migration guide jade error #2807
4.0.2 April 23, 2015
  • fixed; error thrown when calling .validate() on subdoc not in an array #2902
  • fixed; rename define() to play nice with webpack #2900 jspears
  • fixed; pre validate called twice with discriminators #2892
  • fixed; .inspect() on mongoose.Types #2875
  • docs; correct callback params for Model.update #2872
  • fixed; setDefaultsOnInsert now works when runValidators not specified #2870
  • fixed; Document now wraps EventEmitter.addListener #2867
  • fixed; call non-hook functions in schema queue #2856
  • fixed; statics can be mocked out for tests #2848 ninelb
  • upgraded; mquery 1.4.0 for bluebird bug fix #2846
  • fixed; required validators run first #2843
  • docs; improved docs for new option to findAndMody #2838
  • docs; populate example now uses correct field #2837 swilliams
  • fixed; pre validate changes causing VersionError #2835
  • fixed; get path from correct place when setting CastError #2832
  • docs; improve docs for Model.update() function signature #2827 irnc
  • fixed; populating discriminators #2825 chetverikov
  • fixed; discriminators with nested schemas #2821
  • fixed; CastErrors with embedded docs #2819
  • fixed; post save hook context #2816
  • docs; 3.8.x -> 4.x migration guide #2807
  • fixed; proper _distinct copying for query #2765 cdelauder
4.0.1 March 28, 2015
  • fixed; properly handle empty cast doc in update() with promises #2796
  • fixed; unstable warning #2794
  • fixed; findAndModify docs now show new option is false by default #2793
4.0.0 March 25, 2015
  • fixed; on-the-fly schema docs typo #2783 artiifix
  • fixed; cast error validation handling #2775 #2766 #2678
  • fixed; discriminators with populate() #2773 #2719 chetverikov
  • fixed; increment now a reserved path #2709
  • fixed; avoid sending duplicate object ids in populate() #2683
  • upgraded; mongodb to 2.0.24 to properly emit reconnect event multiple times #2656

4.0.0-rc4 / 2015-03-14

  • fixed; toObject virtuals schema option handled properly #2751
  • fixed; update validators work on document arrays #2733
  • fixed; check for cast errors on $set #2729
  • fixed; instance field set for all schema types #2727 csdco
  • fixed; dont run other validators if required fails #2725
  • fixed; custom getters execute on ref paths #2610
  • fixed; save defaults if they were set when doc was loaded from db #2558
  • fixed; pre validate now runs before pre save #2462
  • fixed; no longer throws errors with --use_strict #2281
4.0.0-rc4 March 14, 2015  
4.0.0-rc3 February 28, 2015  
4.0.0-rc2 February 10, 2015  
4.0.0-rc1 February 01, 2015  
4.0.0-rc0 January 30, 2015  
3.9.7 December 19, 2014
  • added; proper cursors for aggregate #2539 changyy
  • added; min/max built-in validators for dates #2531 bshamblen
  • fixed; save and validate are now reserved keywords #2380
  • added; basic documentation for browser component #2256
  • added; find and findOne hooks (query middleware) #2138
  • fixed; throw a DivergentArrayError when saving positional operator queries #2031
  • added; ability to use options as a document property #1416
  • fixed; document no longer inherits from event emitter and so domain and _events are no longer reserved #1351
  • removed; setProfiling #1349
3.9.6 December 05, 2014
  • added; correctly run validators on each element of array when entire array is modified #661 #1227
  • added; castErrors in validation #1013 jondavidjohn
  • added; specify text indexes in schema fields #1401 sr527
  • added; ability to set field with validators to undefined #1594 alabid
  • added; .create() returns an array when passed an array #1746 alabid
  • added; test suite and docs for use with co and yield #2177 #2474
  • fixed; subdocument toObject() transforms #2447 chmanie
  • fixed; Model.create() with save errors #2484
  • added; pass options to .save() and .remove() #2494 jondavidjohn
3.9.5 November 10, 2014
  • added; ability to disable autoIndex on a per-connection basis #1875 sr527
  • fixed; geoNear() no longer enforces legacy coordinate pairs - supports GeoJSON #1987 alabid
  • fixed; browser component works when minified with mangled variable names #2302
  • fixed; doc.errors now cleared before validate() called #2302
  • added; execPopulate() function to make doc.populate() compatible with promises #2317
  • fixed; count() no longer throws an error when used with sort() #2374
  • fixed; save() no longer recursively calls save() on populated fields #2418
3.9.4 October 25, 2014
  • fixed; statics no longer can be overwritten #2343 nkcmr
  • added; ability to set single populated paths to documents #1530
  • added; setDefaultsOnInsert and runValidator options for findOneAndUpdate() #860
3.9.3 October 01, 2014
  • added; support for virtuals that return objects #2294
  • added; ability to manually hydrate POJOs into mongoose objects #2292
  • added; setDefaultsOnInsert and runValidator options for update() #860
3.9.2 September 08, 2014
  • added; test coverage for browser component #2255
  • added; in-order execution of validators #2243
  • added; custom fields for validators #2132
  • removed; exception thrown when find() used with count() #1950
3.9.1 August 17, 2014
  • added; alpha version of browser-side schema validation #2254
  • added; support passing a function to schemas required field #2247
  • added; support for setting updatedAt and createdAt timestamps #2227
  • added; document.validate() returns a promise #2131
3.9.0 May 22, 2014  
3.8.40 April 24, 2016
  • upgraded; mquery -> 1.10.0 #3989
3.8.39 January 15, 2016
  • fixed; casting a number to a buffer #3764
  • fixed; enumerating virtual property with nested objects #3743 kusold
3.8.38 January 07, 2016
  • fixed; aggregate.append an array #3730 dbkup
3.8.37 November 16, 2015
  • fixed; use retainKeyOrder for cloning update op #3572
3.8.36 October 18, 2015
  • fixed; Make array props non-enumerable #3461 boblauer
3.8.35 August 14, 2015
  • fixed; handling for minimize on nested objects #2930
  • fixed; don't crash when schema.path.options undefined #1824
3.8.34 July 20, 2015
  • fixed; allow using $rename #3171
  • fixed; no longer modifies update arguments #3008
3.8.33 July 10, 2015
  • upgraded; node driver -> 1.4.38
  • fixed; dont crash when match validator undefined
3.8.31 June 20, 2015
  • fixed; properly handle text search with discriminators and $meta #2166
3.8.30 June 05, 2015
  • fixed; enable users to set all options with tailable() #2883
3.8.29 May 27, 2015
  • fixed; Handle JSON.stringify properly for nested docs #2990
3.8.28 May 12, 2015
  • fixed; proper handling for toJSON options #2910
  • fixed; dont attach virtuals to embedded docs in update() #2046
3.8.27 April 22, 2015
  • fixed; dont duplicate db calls on Q.ninvoke() #2864
  • fixed; Model.find arguments naming in docs #2828
  • fixed; Support ipv6 in connection strings #2298
3.8.26 April 07, 2015
  • fixed; TypeError when setting date to undefined #2833
  • fixed; handle CastError properly in distinct() with no callback #2786
  • fixed; broken links in queries docs #2779
  • fixed; dont mark buffer as modified when setting type initially #2738
  • fixed; dont crash when using slice with populate #1934
3.8.25 March 13, 2015
  • fixed; debug output reverses order of aggregation keys #2759
  • fixed; $eq is a valid query selector in 3.0 #2752
  • fixed; upgraded node driver to 1.4.32 for handling non-numeric poolSize #2682
  • fixed; update() with overwrite sets _id for nested docs #2658
  • fixed; casting for operators in $elemMatch #2199

4.0.0-rc3 / 2015-02-28

  • fixed; update() pre hooks run before validators #2706
  • fixed; setters not called on arrays of refs #2698 brandom
  • fixed; use node driver 2.0.18 for nodejs 0.12 support #2685
  • fixed; comments reference file that no longer exists #2681
  • fixed; populated() returns _id of manually populated doc #2678
  • added; ability to exclude version key in toObject() #2675
  • fixed; dont allow setting nested path to a string #2592
  • fixed; can cast objects with _id field to ObjectIds #2581
  • fixed; on-the-fly schema getters #2360
  • added; strict option for findOneAndUpdate() #1967
3.8.24 February 25, 2015
  • fixed; properly apply child schema transforms #2691
  • fixed; make copy of findOneAndUpdate options before modifying #2687
  • fixed; apply defaults when parent path is selected #2670 #2629
  • fixed; properly get ref property for nested paths #2665
  • fixed; node driver makes copy of authenticate options before modifying them #2619
  • fixed; dont block process exit when auth fails #2599
  • fixed; remove redundant clone in update() #2537

4.0.0-rc2 / 2015-02-10

  • added; io.js to travis build
  • removed; browser build dependencies not installed by default
  • added; dynamic refpaths #2640 chetverikov
  • fixed; dont call child schema transforms on parent #2639 chetverikov
  • fixed; get rid of remove option if new is set in findAndModify #2598
  • fixed; aggregate all document array validation errors #2589
  • fixed; custom setters called when setting value to undefined #1892
3.8.23 February 06, 2015
  • fixed; unset opts.remove when upsert is true #2519
  • fixed; array saved as object when path is object in array #2442
  • fixed; inline transforms #2440
  • fixed; check for callback in count() #2204
  • fixed; documentation for selecting fields #1534

4.0.0-rc1 / 2015-02-01

  • fixed; use driver 2.0.14
  • changed; use transform: true by default #2245

4.0.0-rc0 / 2015-01-31

  • fixed; wrong order for distinct() params #2628
  • fixed; handling no query argument to remove() #2627
  • fixed; createModel and discriminators #2623 ashaffer
  • added; pre('count') middleware #2621
  • fixed; double validation calls on document arrays #2618
  • added; validate() catches cast errors #2611
  • fixed; respect replicaSet parameter in connection string #2609
  • added; can explicitly exclude paths from versioning #2576 csabapalfi
  • upgraded; driver to 2.0.15 #2552
  • fixed; save() handles errors more gracefully in ES6 #2371
  • fixed; undefined is now a valid argument to findOneAndUpdate #2272
  • changed; new option to findAndModify ops is false by default #2262
3.8.22 January 24, 2015
  • upgraded; node-mongodb-native to 1.4.28 #2587 Climax777
  • added; additional documentation for validators #2449
  • fixed; stack overflow when creating massive arrays #2423
  • fixed; undefined is a valid id for queries #2411
  • fixed; properly create nested schema index when same schema used twice #2322
  • added; link to plugin generator in docs #2085 huei90
  • fixed; optional arguments documentation for findOne() #1971 nachinius
3.8.21 December 18, 2014
  • fixed; syntax in index.jade #2517 elderbas
  • fixed; writable statics #2510 #2528
  • fixed; overwrite and explicit $set casting #2515
3.8.20 December 01, 2014
  • fixed; recursive readPref #2490 kjvalencik
  • fixed; make sure to copy parameters to update() before modifying #2406 alabid
  • fixed; unclear documentation about query callbacks #2319
  • fixed; setting a schema-less field to an empty object #2314 alabid
  • fixed; registering statics and methods for discriminators #2167 alabid
3.8.19 November 09, 2014
  • fixed; make sure to not override subdoc _ids on find #2276 alabid
  • fixed; exception when comparing two documents when one lacks _id #2333 slawo
  • fixed; getters for properties with non-strict schemas #2439 alabid
  • fixed; inconsistent URI format in docs #2414 sr527
3.8.18 October 22, 2014
  • fixed; Dont use all toObject options in save #2340 chetverikov
3.8.17 September 29, 2014
  • fixed; use schema options retainKeyOrder in save() #2274
  • fixed; fix skip in populate when limit is set #2252
  • fixed; fix stack overflow when passing MongooseArray to findAndModify #2214
  • fixed; optimize .length usage in populate #2289
3.8.16 September 08, 2014
  • fixed; properly remove modified array paths if array has been overwritten #1638
  • fixed; key check errors #1884
  • fixed; make sure populate on an array always returns a Mongoose array #2214
  • fixed; SSL connections with node 0.11 #2234
  • fixed; return sensible strings for promise errors #2239
3.8.15 August 17, 2014
  • fixed; Replica set connection string example in docs #2246
  • fixed; bubble up parseError event #2229
  • fixed; removed buggy populate cache #2176
  • fixed; dont $inc versionKey if its being $set #1933
  • fixed; cast $or and $and in $pull #1932
  • fixed; properly cast to schema in stream() #1862
  • fixed; memory leak in nested objects #1565 #2211 devongovett
3.8.14 July 26, 2014
  • fixed; stringifying MongooseArray shows nested arrays #2002
  • fixed; use populated doc schema in toObject and toJSON by default #2035
  • fixed; dont crash on arrays containing null #2140
  • fixed; model.update w/ upsert has same return values on .exec and promise #2143
  • fixed; better handling for populate limit with multiple documents #2151
  • fixed; dont prevent users from adding weights to text index #2183
  • fixed; helper for aggregation cursor #2187
  • updated; node-mongodb-native to 1.4.7
3.8.13 July 14, 2014
  • fixed; memory leak with isNew events #2159
  • fixed; docs for overwrite option for update() #2144
  • fixed; storeShard() handles dates properly #2127
  • fixed; sub-doc changes not getting persisted to db after save #2082
  • fixed; populate with _id: 0 actually removes _id instead of setting to undefined #2123
  • fixed; save versionKey on findOneAndUpdate w/ upsert #2122
  • fixed; fix typo in 2.8 docs #2120 shakirullahi
  • fixed; support maxTimeMs #2102 yuukinajima
  • fixed; support $currentDate #2019
  • fixed; $addToSet handles objects without _ids properly #1973
  • fixed; dont crash on invalid nearSphere query #1874
3.8.12 May 30, 2014
  • fixed; single-server reconnect event fires #1672
  • fixed; sub-docs not saved when pushed into populated array #1794
  • fixed; .set() sometimes converts embedded docs to pojos #1954 archangel-irk
  • fixed; sub-doc changes not getting persisted to db after save #2082
  • fixed; custom getter might cause mongoose to mistakenly think a path is dirty #2100 pgherveou
  • fixed; chainable helper for allowDiskUse option in aggregation #2114

3.9.0 (unstable) / 2014-05-22

  • changed; added domain to reserved keywords #1338 #2052 antoinepairet
  • added; asynchronous post hooks #1977 #2081 chopachom JasonGhent
  • added; using model for population, cross-db populate mihai-chiorean
  • added; can define a type for schema validators
  • added; doc.remove() returns a promise #1619 refack
  • added; internal promises for hooks, pre-save hooks run in parallel #1732 refack
  • fixed; geoSearch hanging when no results returned #1846 ghartnett
  • fixed; do not set .type property on ValidationError, use .kind instead #1323
3.8.11 May 22, 2014
  • updated; node-mongodb-native to 1.4.5
  • reverted; #2052, fixes #2097
3.8.10 May 20, 2014
  • updated; node-mongodb-native to 1.4.4
  • fixed; _.isEqual false negatives bug in js-bson #2070
  • fixed; missing check for schema.options #2014
  • fixed; missing support for $position #2024
  • fixed; options object corruption #2049
  • fixed; improvements to virtuals docs #2055
  • fixed; added domain to reserved keywords #2052 #1338
3.8.9 May 08, 2014
  • updated; mquery to 0.7.0
  • updated; node-mongodb-native to 1.4.3
  • fixed; $near failing against MongoDB 2.6
  • fixed; relying on .options() to determine if collection exists
  • fixed; $out aggregate helper
  • fixed; all test failures against MongoDB 2.6.1, with caveat #2065
3.8.8 February 23, 2014
  • fixed; saving Buffers #1914
  • updated; expose connection states for user-land #1926 yorkie
  • updated; mquery to 0.5.3
  • updated; added get / set to reserved path list #1903 tstrimple
  • docs; README code highlighting, syntax fixes #1930 IonicaBizau
  • docs; fixes link in the doc at #1925 kapeels
  • docs; add a missed word 'hook' for the description of the post-hook api #1924 ipoval
3.8.7 February 10, 2014
  • fixed; sending safe/read options in Query#exec #1895
  • fixed; findOneAnd..() with sort #1887
3.8.6 January 30, 2014
  • fixed; setting readPreferences #1895
3.8.5 January 24, 2014
  • fixed; ssl setting when using URI #1882
  • fixed; findByIdAndUpdate now respects the overwrite option #1809 owenallenaz
3.8.4 January 07, 2014
  • updated; mongodb driver to 1.3.23
  • updated; mquery to 0.4.1
  • updated; mpromise to 0.4.3
  • fixed; discriminators now work when selecting fields #1820 daemon1981
  • fixed; geoSearch with no results timeout #1846 ghartnett
  • fixed; infitite recursion in ValidationError #1834 chetverikov
3.8.3 December 18, 2013
  • fixed; setting empty array with model.update #1838
  • docs; fix url
3.8.2 December 14, 2013
  • fixed; enum validation of multiple values #1778 heroicyang
  • fixed; global var leak #1803
  • fixed; post remove now fires on subdocs #1810
  • fixed; no longer set default empty array for geospatial-indexed fields #1668 shirish87
  • fixed; model.stream() not hydrating discriminators correctly #1792 j
  • docs: Stablility -> Stability nikmartin
  • tests; improve shard error handling
3.8.1 November 20, 2013
  • fixed; mishandling of Dates with minimize/getters #1764
  • fixed; Normalize bugs.email, so npm will shut up #1769 refack
  • docs; Improve the grammar where "lets us" was used #1777 alexyoung
  • docs; Fix some grammatical issues in the documentation #1777 alexyoung
  • docs; fix Query api exposure
  • docs; fix return description
  • docs; Added Notes on findAndUpdate() #1750 sstadelman
  • docs; Update version number in README #1762 Fodi69
3.8.0 November 01, 2013
  • updated; warn when using an unstable version
  • updated; error message returned in doc.save() #1595
  • updated; mongodb driver to 1.3.19 (fix error swallowing behavior)
  • updated; mquery to 0.3.2
  • updated; mocha to 1.12.0
  • updated; mpromise 0.3.0
  • updated; sliced 0.0.5
  • removed; mongoose.Error.DocumentError (never used)
  • removed; namedscope (undocumented and broken) #679 #642 #455 #379
  • changed; no longer offically supporting node 0.6.x
  • changed; query.within getter is now a method -> query.within()
  • changed; query.intersects getter is now a method -> query.intersects()
  • added; custom error msgs for built-in validators #747
  • added; discriminator support #1647 #1003 j
  • added; support disabled collection name pluralization #1350 #1707 refack
  • added; support for GeoJSON to Query#near ebensing
  • added; stand-alone base query support - query.toConstructor() ebensing
  • added; promise support to geoSearch #1614 ebensing
  • added; promise support for geoNear #1614 ebensing
  • added; connection.useDb() #1124 ebensing
  • added; promise support to model.mapReduce()
  • added; promise support to model.ensureIndexes()
  • added; promise support to model.populate()
  • added; benchmarks ebensing
  • added; publicly exposed connection states #1585
  • added; $geoWithin support #1529 $1455 ebensing
  • added; query method chain validation
  • added; model.update overwrite option
  • added; model.geoNear() support #1563 ebensing
  • added; model.geoSearch() support #1560 ebensing
  • added; MongooseBuffer#subtype()
  • added; model.create() now returns a promise #1340
  • added; support for awaitdata query option
  • added; pass the doc to doc.remove() callback #1419 JoeWagner
  • added; aggregation query builder #1404 njoyard
  • fixed; document.toObject when using minimize and getters options #1607 JedWatson
  • fixed; Mixed types can now be required #1722 Reggino
  • fixed; do not pluralize model names not ending with letters #1703 refack
  • fixed; repopulating modified populated paths #1697
  • fixed; doc.equals() when _id option is set to false #1687
  • fixed; strict mode warnings #1686
  • fixed; $near GeoJSON casting #1683
  • fixed; nearSphere GeoJSON query builder
  • fixed; population field selection w/ strings #1669
  • fixed; setters not firing on null values #1445 ebensing
  • fixed; handle another versioning edge case #1520
  • fixed; excluding subdocument fields #1280 ebensing
  • fixed; allow array properties to be set to null with findOneAndUpdate aheuermann
  • fixed; subdocuments now use own toJSON opts #1376 ebensing
  • fixed; model#geoNear fulfills promise when results empty #1658 ebensing
  • fixed; utils.merge no longer overrides props and methods #1655 j
  • fixed; subdocuments now use their own transform #1412 ebensing
  • fixed; model.remove() removes only what is necessary #1649
  • fixed; update() now only runs with cb or explicit true #1644
  • fixed; casting ref docs on creation #1606 ebensing
  • fixed; model.update "overwrite" option works as documented
  • fixed; query#remove() works as documented
  • fixed; "limit" correctly applies to individual items on population #1490 ebensing
  • fixed; issue with positional operator on ref docs #1572 ebensing
  • fixed; benchmarks to actually output valid json
  • deprecated; promise#addBack (use promise#onResolve)
  • deprecated; promise#complete (use promise#fulfill)
  • deprecated; promise#addCallback (use promise#onFulFill)
  • deprecated; promise#addErrback (use promise#onReject)
  • deprecated; query.nearSphere() (use query.near)
  • deprecated; query.center() (use query.circle)
  • deprecated; query.centerSphere() (use query.circle)
  • deprecated; query#slaveOk (use query#read)
  • docs; custom validator messages
  • docs; 10gen -> MongoDB
  • docs; add Date method caveats #1598
  • docs; more validation details
  • docs; state which branch is stable/unstable
  • docs; mention that middleware does not run on Models
  • docs; promise.fulfill()
  • docs; fix readme spelling #1483 yorchopolis
  • docs; fixed up the README and examples ebensing
  • website; add "show code" for properties
  • website; move "show code" links down
  • website; update guide
  • website; add unstable docs
  • website; many improvements
  • website; fix copyright #1439
  • website; server.js -> static.js #1546 nikmartin
  • tests; refactor 1703
  • tests; add test generator
  • tests; validate formatMessage() throws
  • tests; add script for continuously running tests
  • tests; fixed versioning tests
  • tests; race conditions in tests
  • tests; added for nested and/or queries
  • tests; close some test connections
  • tests; validate db contents
  • tests; remove .only
  • tests; close some test connections
  • tests; validate db contents
  • tests; remove .only
  • tests; replace deprecated method names
  • tests; convert id to string
  • tests; fix sharding tests for MongoDB 2.4.5
  • tests; now 4-5 seconds faster
  • tests; fix race condition
  • make; suppress warning msg in test
  • benchmarks; updated for pull requests
  • examples; improved and expanded ebensing

3.7.4 (unstable) / 2013-10-01

  • updated; mquery to 0.3.2
  • removed; mongoose.Error.DocumentError (never used)
  • added; custom error msgs for built-in validators #747
  • added; discriminator support #1647 #1003 j
  • added; support disabled collection name pluralization #1350 #1707 refack
  • fixed; do not pluralize model names not ending with letters #1703 refack
  • fixed; repopulating modified populated paths #1697
  • fixed; doc.equals() when _id option is set to false #1687
  • fixed; strict mode warnings #1686
  • fixed; $near GeoJSON casting #1683
  • fixed; nearSphere GeoJSON query builder
  • fixed; population field selection w/ strings #1669
  • docs; custom validator messages
  • docs; 10gen -> MongoDB
  • docs; add Date method caveats #1598
  • docs; more validation details
  • website; add "show code" for properties
  • website; move "show code" links down
  • tests; refactor 1703
  • tests; add test generator
  • tests; validate formatMessage() throws

3.7.3 (unstable) / 2013-08-22

  • updated; warn when using an unstable version
  • updated; mquery to 0.3.1
  • updated; mocha to 1.12.0
  • updated; mongodb driver to 1.3.19 (fix error swallowing behavior)
  • changed; no longer offically supporting node 0.6.x
  • added; support for GeoJSON to Query#near ebensing
  • added; stand-alone base query support - query.toConstructor() ebensing
  • added; promise support to geoSearch #1614 ebensing
  • added; promise support for geoNear #1614 ebensing
  • fixed; setters not firing on null values #1445 ebensing
  • fixed; handle another versioning edge case #1520
  • fixed; excluding subdocument fields #1280 ebensing
  • fixed; allow array properties to be set to null with findOneAndUpdate aheuermann
  • fixed; subdocuments now use own toJSON opts #1376 ebensing
  • fixed; model#geoNear fulfills promise when results empty #1658 ebensing
  • fixed; utils.merge no longer overrides props and methods #1655 j
  • fixed; subdocuments now use their own transform #1412 ebensing
  • make; suppress warning msg in test
  • docs; state which branch is stable/unstable
  • docs; mention that middleware does not run on Models
  • tests; add script for continuously running tests
  • tests; fixed versioning tests
  • benchmarks; updated for pull requests

3.7.2 (unstable) / 2013-08-15

  • fixed; model.remove() removes only what is necessary #1649
  • fixed; update() now only runs with cb or explicit true #1644
  • tests; race conditions in tests
  • website; update guide

3.7.1 (unstable) / 2013-08-13

  • updated; driver to 1.3.18 (fixes memory leak)
  • added; connection.useDb() #1124 ebensing
  • added; promise support to model.mapReduce()
  • added; promise support to model.ensureIndexes()
  • added; promise support to model.populate()
  • fixed; casting ref docs on creation #1606 ebensing
  • fixed; model.update "overwrite" option works as documented
  • fixed; query#remove() works as documented
  • fixed; "limit" correctly applies to individual items on population #1490 ebensing
  • fixed; issue with positional operator on ref docs #1572 ebensing
  • fixed; benchmarks to actually output valid json
  • tests; added for nested and/or queries
  • tests; close some test connections
  • tests; validate db contents
  • tests; remove .only
  • tests; close some test connections
  • tests; validate db contents
  • tests; remove .only
  • tests; replace deprecated method names
  • tests; convert id to string
  • docs; promise.fulfill()

3.7.0 (unstable) / 2013-08-05

  • changed; query.within getter is now a method -> query.within()
  • changed; query.intersects getter is now a method -> query.intersects()
  • deprecated; promise#addBack (use promise#onResolve)
  • deprecated; promise#complete (use promise#fulfill)
  • deprecated; promise#addCallback (use promise#onFulFill)
  • deprecated; promise#addErrback (use promise#onReject)
  • deprecated; query.nearSphere() (use query.near)
  • deprecated; query.center() (use query.circle)
  • deprecated; query.centerSphere() (use query.circle)
  • deprecated; query#slaveOk (use query#read)
  • removed; namedscope (undocumented and broken) #679 #642 #455 #379
  • added; benchmarks ebensing
  • added; publicly exposed connection states #1585
  • added; $geoWithin support #1529 $1455 ebensing
  • added; query method chain validation
  • added; model.update overwrite option
  • added; model.geoNear() support #1563 ebensing
  • added; model.geoSearch() support #1560 ebensing
  • added; MongooseBuffer#subtype()
  • added; model.create() now returns a promise #1340
  • added; support for awaitdata query option
  • added; pass the doc to doc.remove() callback #1419 JoeWagner
  • added; aggregation query builder #1404 njoyard
  • updated; integrate mquery #1562 ebensing
  • updated; error msg in doc.save() #1595
  • updated; bump driver to 1.3.15
  • updated; mpromise 0.3.0
  • updated; sliced 0.0.5
  • tests; fix sharding tests for MongoDB 2.4.5
  • tests; now 4-5 seconds faster
  • tests; fix race condition
  • docs; fix readme spelling #1483 yorchopolis
  • docs; fixed up the README and examples ebensing
  • website; add unstable docs
  • website; many improvements
  • website; fix copyright #1439
  • website; server.js -> static.js #1546 nikmartin
  • examples; improved and expanded ebensing

3.6.20 (stable) / 2013-09-23

  • fixed; repopulating modified populated paths #1697
  • fixed; doc.equals w/ _id false #1687
  • fixed; strict mode warning #1686
  • docs; near/nearSphere

3.6.19 (stable) / 2013-09-04

  • fixed; population field selection w/ strings #1669
  • docs; Date method caveats #1598

3.6.18 (stable) / 2013-08-22

  • updated; warn when using an unstable version of mongoose
  • updated; mocha to 1.12.0
  • updated; mongodb driver to 1.3.19 (fix error swallowing behavior)
  • fixed; setters not firing on null values #1445 ebensing
  • fixed; properly exclude subdocument fields #1280 ebensing
  • fixed; cast error in findAndModify #1643 aheuermann
  • website; update guide
  • website; added documentation for safe:false and versioning interaction
  • docs; mention that middleware dont run on Models
  • docs; fix indexes link
  • make; suppress warning msg in test
  • tests; moar
3.7.4 October 01, 2013  
3.7.3 August 23, 2013  
3.7.2 August 15, 2013  
3.7.1 August 13, 2013  
3.7.0 August 05, 2013  
3.6.20 September 23, 2013  
3.6.19 September 04, 2013  
3.6.18 August 22, 2013  
3.6.17 August 13, 2013
  • updated; driver to 1.3.18 (fixes memory leak)
  • fixed; casting ref docs on creation #1606
  • docs; query options
3.6.16 August 08, 2013
  • added; publicly expose connection states #1585
  • fixed; limit applies to individual items on population #1490 ebensing
  • fixed; positional operator casting in updates #1572 ebensing
  • updated; MongoDB driver to 1.3.17
  • updated; sliced to 0.0.5
  • website; tweak homepage
  • tests; fixed + added
  • docs; fix some examples
  • docs; multi-mongos support details
  • docs; auto open browser after starting static server
3.6.15 July 16, 2013
  • added; mongos failover support #1037
  • updated; make schematype return vals return self #1580
  • docs; add note to model.update #571
  • docs; document third param to document.save callback #1536
  • tests; tweek mongos test timeout
3.6.14 July 05, 2013
  • updated; driver to 1.3.11
  • fixed; issue with findOneAndUpdate not returning null on upserts #1533 ebensing
  • fixed; missing return statement in SchemaArray#$geoIntersects() #1498 bsrykt
  • fixed; wrong isSelected() behavior #1521 kyano
  • docs; note about toObject behavior during save()
  • docs; add callbacks details #1547 nikmartin
3.6.13 June 27, 2013

3.6.13 / 2013-06-27

  • fixed; calling model.distinct without conditions #1541
  • fixed; regression in Query#count() #1542
3.6.12 June 26, 2013
  • updated; driver to 1.3.10
  • updated; clearer capped collection error message #1509 bitmage
  • fixed; MongooseBuffer subtype loss during casting #1517 zedgu
  • fixed; docArray#id when doc.id is disabled #1492
  • fixed; docArray#id now supports matches on populated arrays #1492 pgherveou
  • website; fix example
  • website; improve _id disabling example
  • website; fix typo #1494 dejj
  • docs; added a 'Requesting new features' section #1504 shovon
  • docs; improve subtypes description
  • docs; clarify _id disabling
  • docs: display by alphabetical order the methods list #1508 nicolasleger
  • tests; refactor isSelected checks
  • tests; remove pointless test
  • tests; fixed timeouts
3.6.11 May 15, 2013
  • updated; driver to 1.3.5
  • fixed; compat w/ Object.create(null) #1484 #1485
  • fixed; cloning objects w/ missing constructors
  • fixed; prevent multiple min number validators #1481 nrako
  • docs; add doc.increment() example
  • docs; add $size example
  • docs; add "distinct" example
3.6.10 May 09, 2013
  • update driver to 1.3.3
  • fixed; increment() works without other changes #1475
  • website; fix links to posterous
  • docs; fix link #1472
3.6.9 May 02, 2013
  • fixed; depopulation of mixed documents #1471
  • fixed; use of $options in array #1462
  • tests; fix race condition
  • docs; fix default example
3.6.8 April 25, 2013
  • updated; driver to 1.3.0
  • fixed; connection.model should retain options #1458 vedmalex
  • tests; 4-5 seconds faster
3.6.7 April 19, 2013
  • fixed; population regression in 3.6.6 #1444
3.6.6 April 18, 2013
  • fixed; saving populated new documents #1442
  • fixed; population regession in 3.6.5 #1441
  • website; fix copyright #1439
3.6.5 April 15, 2013
  • fixed; strict:throw edge case using .set(path, val)
  • fixed; schema.pathType() on some numbericAlpha paths
  • fixed; numbericAlpha path versioning
  • fixed; setting nested mixed paths #1418
  • fixed; setting nested objects with null prop #1326
  • fixed; regression in v3.6 population performance #1426 vedmalex
  • fixed; read pref typos #1422 kyano
  • docs; fix method example
  • website; update faq
  • website; add more deep links
  • website; update poolSize docs
  • website; add 3.6 release notes
  • website; note about keepAlive
3.6.4 April 03, 2013
  • fixed; +field conflict with $slice #1370
  • fixed; nested deselection conflict #1333
  • fixed; RangeError in ValidationError.toString() #1296
  • fixed; do not save user defined transforms #1415
  • tests; fix race condition
3.6.3 April 02, 2013
  • fixed; setting subdocuments deeply nested fields #1394
  • fixed; regression: populated streams #1411
  • docs; mention hooks/validation with findAndModify
  • docs; mention auth
  • docs; add more links
  • examples; add document methods example
  • website; display "see" links for properties
  • website; clean up homepage
3.6.2 March 30, 2013
  • fixed; corrupted sub-doc array #1408
  • fixed; document#update returns a Query #1397
  • docs; readpref strategy
3.6.1 March 27, 2013
  • added; populate support to findAndModify varients #1395
  • added; text index type to schematypes
  • expose allowed index types as Schema.indexTypes
  • fixed; use of setMaxListeners as path
  • fixed; regression in node 0.6 on docs with > 10 arrays
  • fixed; do not alter schema arguments #1364
  • fixed; subdoc#ownerDocument() #1385
  • website; change search id
  • website; add search from google jackdbernier
  • website; fix link
  • website; add 3.5.x docs release
  • website; fix link
  • docs; fix geometry
  • docs; hide internal constructor
  • docs; aggregation does not cast arguments #1399
  • docs; querystream options
  • examples; added for population
3.6.1-pre March 27, 2013  
3.6.0 March 18, 2013
  • changed; cast 'true'/'false' to boolean #1282 mgrach
  • changed; Buffer arrays can now contain nulls
  • added; QueryStream transform option
  • added; support for authSource driver option
  • added; {mongoose,db}.modelNames()
  • added; $push w/ $slice,$sort support (MongoDB 2.4)
  • added; hashed index type (MongoDB 2.4)
  • added; support for mongodb 2.4 geojson (MongoDB 2.4)
  • added; value at time of validation error
  • added; support for object literal schemas
  • added; bufferCommands schema option
  • added; allow auth option in connections #1360 geoah
  • added; performance improvements to populate() 263ece9
  • added; allow adding uncasted docs to populated arrays and properties #570
  • added; doc#populated(path) stores original populated _ids
  • added; lean population #1260
  • added; query.populate() now accepts an options object
  • added; document#populate(opts, callback)
  • added; Model.populate(docs, opts, callback)
  • added; support for rich nested path population
  • added; doc.array.remove(value) subdoc with _id value support #1278
  • added; optionally allow non-strict sets and updates
  • added; promises/A+ comformancy with mpromise
  • added; promise#then
  • added; promise#end
  • fixed; use of model as doc property
  • fixed; lean population #1382
  • fixed; empty object mixed defaults #1380
  • fixed; populate w/ deselected _id using string syntax
  • fixed; attempted save of divergent populated arrays #1334 related
  • fixed; better error msg when attempting toObject as property name
  • fixed; non population buffer casting from doc
  • fixed; setting populated paths #570
  • fixed; casting when added docs to populated arrays #570
  • fixed; prohibit updating arrays selected with $elemMatch #1334
  • fixed; pull / set subdoc combination #1303
  • fixed; multiple bg index creation #1365
  • fixed; manual reconnection to single mongod
  • fixed; Constructor / version exposure #1124
  • fixed; CastError race condition
  • fixed; no longer swallowing misuse of subdoc#invalidate()
  • fixed; utils.clone retains RegExp opts
  • fixed; population of non-schema property
  • fixed; allow updating versionKey #1265
  • fixed; add EventEmitter props to reserved paths #1338
  • fixed; can now deselect populated doc _ids #1331
  • fixed; properly pass subtype to Binary in MongooseBuffer
  • fixed; casting _id from document with non-ObjectId _id
  • fixed; specifying schema type edge case { path: [{type: "String" }] }
  • fixed; typo in schemdate #1329 jplock
  • updated; driver to 1.2.14
  • updated; muri to 0.3.1
  • updated; mpromise to 0.2.1
  • updated; mocha 1.8.1
  • updated; mpath to 0.1.1
  • deprecated; pluralization will die in 4.x
  • refactor; rename private methods to something unusable as doc properties
  • refactor MongooseArray#remove
  • refactor; move expires index to SchemaDate #1328
  • refactor; internal document properties #1171 #1184
  • tests; added
  • docs; indexes
  • docs; validation
  • docs; populate
  • docs; populate
  • docs; add note about stream compatibility with node 0.8
  • docs; fix for private names
  • docs; Buffer -> mongodb.Binary #1363
  • docs; auth options
  • docs; improved
  • website; update FAQ
  • website; add more api links
  • website; add 3.5.x docs to prior releases
  • website; Change mongoose-types to an active repo jackdbernier
  • website; compat with node 0.10
  • website; add news section
  • website; use T for generic type
  • benchmark; make adjustable
3.6.0rc1 March 12, 2013
  • refactor; rename private methods to something unusable as doc properties
  • added; {mongoose,db}.modelNames()
  • added; $push w/ $slice,$sort support (MongoDB 2.4)
  • added; hashed index type (MongoDB 2.4)
  • added; support for mongodb 2.4 geojson (MongoDB 2.4)
  • added; value at time of validation error
  • added; support for object literal schemas
  • added; bufferCommands schema option
  • added; allow auth option in connections #1360 geoah
  • fixed; lean population #1382
  • fixed; empty object mixed defaults #1380
  • fixed; populate w/ deselected _id using string syntax
  • fixed; attempted save of divergent populated arrays #1334 related
  • fixed; better error msg when attempting toObject as property name
  • fixed; non population buffer casting from doc
  • fixed; setting populated paths #570
  • fixed; casting when added docs to populated arrays #570
  • fixed; prohibit updating arrays selected with $elemMatch #1334
  • fixed; pull / set subdoc combination #1303
  • fixed; multiple bg index creation #1365
  • fixed; manual reconnection to single mongod
  • fixed; Constructor / version exposure #1124
  • fixed; CastError race condition
  • fixed; no longer swallowing misuse of subdoc#invalidate()
  • fixed; utils.clone retains RegExp opts
  • fixed; population of non-schema property
  • fixed; allow updating versionKey #1265
  • fixed; add EventEmitter props to reserved paths #1338
  • fixed; can now deselect populated doc _ids #1331
  • updated; muri to 0.3.1
  • updated; driver to 1.2.12
  • updated; mpromise to 0.2.1
  • deprecated; pluralization will die in 4.x
  • docs; Buffer -> mongodb.Binary #1363
  • docs; auth options
  • docs; improved
  • website; add news section
  • benchmark; make adjustable
3.6.0rc0 February 03, 2013
  • changed; cast 'true'/'false' to boolean #1282 mgrach
  • changed; Buffer arrays can now contain nulls
  • fixed; properly pass subtype to Binary in MongooseBuffer
  • fixed; casting _id from document with non-ObjectId _id
  • fixed; specifying schema type edge case { path: [{type: "String" }] }
  • fixed; typo in schemdate #1329 jplock
  • refactor; move expires index to SchemaDate #1328
  • refactor; internal document properties #1171 #1184
  • added; performance improvements to populate() 263ece9
  • added; allow adding uncasted docs to populated arrays and properties #570
  • added; doc#populated(path) stores original populated _ids
  • added; lean population #1260
  • added; query.populate() now accepts an options object
  • added; document#populate(opts, callback)
  • added; Model.populate(docs, opts, callback)
  • added; support for rich nested path population
  • added; doc.array.remove(value) subdoc with _id value support #1278
  • added; optionally allow non-strict sets and updates
  • added; promises/A+ comformancy with mpromise
  • added; promise#then
  • added; promise#end
  • updated; mocha 1.8.1
  • updated; muri to 0.3.0
  • updated; mpath to 0.1.1
  • updated; docs
3.6.0-rc1 August 16, 2013  
3.6.0-rc0 August 16, 2013  
3.5.16 August 13, 2013
  • updated; driver to 1.3.18
3.5.15 July 26, 2013
  • updated; sliced to 0.0.5
  • updated; driver to 1.3.12
  • fixed; regression in Query#count() due to driver change
  • tests; fixed timeouts
  • tests; handle differing test uris
3.5.14 May 15, 2013
  • updated; driver to 1.3.5
  • fixed; compat w/ Object.create(null) #1484 #1485
  • fixed; cloning objects missing constructors
  • fixed; prevent multiple min number validators #1481 nrako
3.5.13 May 09, 2013
  • update driver to 1.3.3
  • fixed; use of $options in array #1462
3.5.12 April 25, 2013
  • updated; driver to 1.3.0
  • fixed; connection.model should retain options #1458 vedmalex
  • fixed; read pref typos #1422 kyano
3.5.11 April 03, 2013
  • fixed; +field conflict with $slice #1370
  • fixed; RangeError in ValidationError.toString() #1296
  • fixed; nested deselection conflict #1333
  • remove time from Makefile
3.5.10 April 02, 2013
  • fixed; setting subdocuments deeply nested fields #1394
  • fixed; do not alter schema arguments #1364
3.5.9 March 15, 2013
  • updated; driver to 1.2.14
  • added; support for authSource driver option (mongodb 2.4)
  • added; QueryStream transform option (node 0.10 helper)
  • fixed; backport for saving required populated buffers
  • fixed; pull / set subdoc combination #1303
  • fixed; multiple bg index creation #1365
  • test; added for saveable required populated buffers
  • test; added for #1365
  • test; add authSource test
3.5.8 March 12, 2013
  • added; auth option in connection geoah
  • fixed; CastError race condition
  • docs; add note about stream compatibility with node 0.8
3.5.7 February 22, 2013
  • updated; driver to 1.2.13
  • updated; muri to 0.3.1 #1347
  • fixed; utils.clone retains RegExp opts #1355
  • fixed; deepEquals RegExp support
  • tests; fix a connection test
  • website; clean up docs afshinm
  • website; update homepage
  • website; migragtion: emphasize impact of strict docs #1264
3.5.6 February 15, 2013
  • updated; driver to 1.2.12
  • fixed; properly pass Binary subtype
  • fixed; add EventEmitter props to reserved paths #1338
  • fixed; use correct node engine version
  • fixed; display empty docs as {} in log output #953 follow up
  • improved; "bad $within $box argument" error message
  • populate; add unscientific benchmark
  • website; add stack overflow to help section
  • website; use better code font #1336 risseraka
  • website; clarify where help is available
  • website; fix source code links #1272 floatingLomas
  • docs; be specific about _id schema option #1103
  • docs; add ensureIndex error handling example
  • docs; README
  • docs; CONTRIBUTING.md
3.5.5 January 29, 2013
  • updated; driver to 1.2.11
  • removed; old node < 0.6x shims
  • fixed; documents with Buffer _ids equality
  • fixed; MongooseBuffer properly casts numbers
  • fixed; reopening closed connection on alt host/port #1287
  • docs; fixed typo in Readme #1298 rened
  • docs; fixed typo in migration docs Prinzhorn
  • docs; fixed incorrect annotation in SchemaNumber#min bilalq
  • docs; updated
3.5.4 January 07, 2013
  • changed; "_pres" & "_posts" are now reserved pathnames #1261
  • updated; driver to 1.2.8
  • fixed; exception when reopening a replica set. #1263 ethankan
  • website; updated
3.5.3 December 26, 2012
  • added; support for geo object notation #1257
  • fixed; $within query casting with arrays
  • fixed; unix domain socket support #1254
  • updated; driver to 1.2.7
  • updated; muri to 0.0.5
3.5.2 December 17, 2012
  • fixed; using auth with replica sets #1253
3.5.1 December 13, 2012
  • fixed; regression when using subdoc with path as pathname #1245 daeq
  • fixed; safer db option checks
  • updated; driver to 1.2.5
  • website; add more examples
  • website; clean up old docs
  • website; fix prev release urls
  • docs; clarify streaming with HTTP responses
3.5.0 December 11, 2012
  • added; paths to CastErrors #1239
  • added; support for mongodb connection string spec #1187
  • added; post validate event
  • added; Schema#get (to retrieve schema options)
  • added; VersionError #1071
  • added; npmignore hidekiy
  • update; driver to 1.2.3
  • fixed; stackoverflow in setter #1234
  • fixed; utils.isObject()
  • fixed; do not clobber user specified driver writeConcern #1227
  • fixed; always pass current document to post hooks
  • fixed; throw error when user attempts to overwrite a model
  • fixed; connection.model only caches on connection #1209
  • fixed; respect conn.model() creation when matching global model exists #1209
  • fixed; passing model name + collection name now always honors collection name
  • fixed; setting virtual field to an empty object #1154
  • fixed; subclassed MongooseErrors exposure, now available in mongoose.Error.xxxx
  • fixed; model.remove() ignoring callback when executed twice daeq #1210
  • docs; add collection option to schema api docs #1222
  • docs; NOTE about db safe options
  • docs; add post hooks docs
  • docs; connection string options
  • docs; middleware is not executed with Model.remove #1241
  • docs; {g,s}etter introspection #777
  • docs; update validation docs
  • docs; add link to plugins page
  • docs; clarify error returned by unique indexes #1225
  • docs; more detail about disabling autoIndex behavior
  • docs; add homepage section to package (npm docs mongoose)
  • docs; more detail around collection name pluralization #1193
  • website; add .important css
  • website; update models page
  • website; update getting started
  • website; update quick start
3.4.0 November 11, 2012
  • added; support for generic toJSON/toObject transforms #1160 #1020 #1197
  • added; doc.set() merge support #1148 NuORDER
  • added; query#add support #1188 aleclofabbro
  • changed; adding invalid nested paths to non-objects throws 4216f14
  • changed; fixed; stop invalid function cloning (internal fix)
  • fixed; add query $and casting support #1180 anotheri
  • fixed; overwriting of query arguments #1176
  • docs; fix expires examples
  • docs; transforms
  • docs; schema collection option docs hermanjunge
  • website; updated
  • tests; added
3.3.1 October 11, 2012
  • fixed; allow goose.connect(uris, dbname, opts) #1144
  • docs; persist API private checked state across page loads
3.3.0 October 10, 2012
  • fixed; passing options as 2nd arg to connect() #1144
  • fixed; race condition after no-op save #1139
  • fixed; schema field selection application in findAndModify #1150
  • fixed; directly setting arrays #1126
  • updated; driver to 1.1.11
  • updated; collection pluralization rules mrickard
  • tests; added
  • docs; updated
3.2.2 October 08, 2012
  • updated; driver to 1.1.10 #1143
  • updated; use sliced 0.0.3
  • fixed; do not recast embedded docs unnecessarily
  • fixed; expires schema option helper #1132
  • fixed; built in string setters #1131
  • fixed; debug output for Dates/ObjectId properties #1129
  • docs; fixed Javascript syntax error in example olalonde
  • docs; fix toJSON example #1137
  • docs; add ensureIndex production notes
  • docs; fix spelling
  • docs; add blogposts about v3
  • website; updated
  • removed; undocumented inGroupsOf util
  • tests; added
3.2.1 September 29, 2012
3.2.0 September 27, 2012
  • added; direct array index assignment with casting support doc.array.set(index, value)
  • fixed; QueryStream#resume within same tick as pause() #1116
  • fixed; default value validatation #1109
  • fixed; array splice() not casting #1123
  • fixed; default array construction edge case #1108
  • fixed; query casting for inequalities in arrays #1101 dpatti
  • tests; added
  • website; more documentation
  • website; fixed layout issue #1111 SlashmanX
  • website; refactored guille
3.1.2 September 10, 2012
  • added; ReadPreferrence schema option #1097
  • updated; driver to 1.1.7
  • updated; default query batchSize to 1000
  • fixed; we now cast the mapReduce query option #1095
  • fixed; $elemMatch+$in with field selection #1091
  • fixed; properly cast $elemMatch+$in conditions #1100
  • fixed; default field application of subdocs #1027
  • fixed; querystream prematurely dying #1092
  • fixed; querystream never resumes when paused at getMore boundries #1092
  • fixed; querystream occasionally emits data events after destroy #1092
  • fixed; remove unnecessary ObjectId creation in querystream
  • fixed; allow ne(boolean) again #1093
  • docs; add populate/field selection syntax notes
  • docs; add toObject/toJSON options detail
  • docs; read schema option
3.1.2-pre September 01, 2012  
3.1.1 September 01, 2012
  • updated; driver to 1.1.6
3.1.0 August 29, 2012
  • changed; fixed; directly setting nested objects now overwrites entire object (previously incorrectly merged them)
  • added; read pref support (mongodb 2.2) 205a709c
  • added; aggregate support (mongodb 2.2) f3a5bd3d
  • added; virtual {g,s}etter introspection (#1070)
  • updated; docs brettz9
  • updated; driver to 1.1.5
  • fixed; retain virtual setter return values (#1069)
3.0.3 August 23, 2012
  • fixed; use of nested paths beginning w/ numbers #1062
  • fixed; query population edge case #1053 #1055 jfremy
  • fixed; simultaneous top and sub level array modifications #1073
  • added; id and _id schema option aliases + tests
  • improve debug formatting to allow copy/paste logged queries into mongo shell eknkc
  • docs
3.0.2 August 17, 2012
  • added; missing support for v3 sort/select syntax to findAndModify helpers (#1058)
  • fixed; replset fullsetup event emission
  • fixed; reconnected event for replsets
  • fixed; server reconnection setting discovery
  • fixed; compat with non-schema path props using positional notation (#1048)
  • fixed; setter/casting order (#665)
  • docs; updated
3.0.1 August 13, 2012
  • fixed; throw Error on bad validators (1044)
  • fixed; typo in EmbeddedDocument#parentArray [lackac]
  • fixed; repair mongoose.SchemaTypes alias
  • updated; docs
3.0.0 August 07, 2012
  • removed; old subdocument#commit method
  • fixed; setting arrays of matching docs [6924cbc2]
  • fixed; doc!remove event now emits in save order as save for consistency
  • fixed; pre-save hooks no longer fire on subdocuments when validation fails
  • added; subdoc#parent() and subdoc#parentArray() to access subdocument parent objects
  • added; query#lean() helper
3.0.0rc0 August 01, 2012
  • fixed; allow subdoc literal declarations containing "type" pathname (#993)
  • fixed; unsetting a default array (#758)
  • fixed; boolean $in queries (#998)
  • fixed; allow use of options as a pathname (#529)
  • fixed; model is again a permitted schema path name
  • fixed; field selection option on subdocs (#1022)
  • fixed; handle another edge case with subdoc saving (#975)
  • added; emit save err on model if listening
  • added; MongoDB TTL collection support (#1006)
  • added; $center options support
  • added; $nearSphere and $polygon support
  • updated; driver version to 1.1.2
3.0.0alpha2 July 18, 2012
  • changed; index errors are now emitted on their model and passed to an optional callback (#984)
  • fixed; specifying index along with sparse/unique option no longer overwrites (#1004)
  • fixed; never swallow connection errors (#618)
  • fixed; creating object from model with emded object no longer overwrites defaults achurkin
  • fixed; stop needless validation of unchanged/unselected fields (#891)
  • fixed; document#equals behavior of objectids (#974)
  • fixed; honor the minimize schema option (#978)
  • fixed; provide helpful error msgs when reserved schema path is used (#928)
  • fixed; callback to conn#disconnect is optional (#875)
  • fixed; handle missing protocols in connection urls (#987)
  • fixed; validate args to query#where (#969)
  • fixed; saving modified/removed subdocs (#975)
  • fixed; update with $pull from Mixed array (#735)
  • fixed; error with null shard key value
  • fixed; allow unsetting enums (#967)
  • added; support for manual index creation (#984)
  • added; support for disabled auto-indexing (#984)
  • added; support for preserving MongooseArray#sort changes (#752)
  • added; emit state change events on connection
  • added; support for specifying BSON subtype in MongooseBuffer#toObject [jcrugzz]
  • added; support for disabled versioning (#977)
  • added; implicit "new" support for models and Schemas
3.0.0alpha1 June 16, 2012
  • removed; doc#commit (use doc#markModified)
  • removed; doc.modified getter (#950)
  • removed; mongoose{connectSet,createSetConnection}. use connect,createConnection instead
  • removed; query alias methods 1149804c
  • removed; MongooseNumber
  • changed; now creating indexes in background by default
  • changed; strict mode now enabled by default (#952)
  • changed; doc#modifiedPaths is now a method (#950)
  • changed; getters no longer cast (#820); casting happens during set
  • fixed; no need to pass updateArg to findOneAndUpdate (#931)
  • fixed: utils.merge bug when merging nested non-objects. [treygriffith]
  • fixed; strict:throw should produce errors in findAndModify (#963)
  • fixed; findAndUpdate no longer overwrites document (#962)
  • fixed; setting default DocumentArrays (#953)
  • fixed; selection of _id with schema deselection (#954)
  • fixed; ensure promise#error emits instanceof Error
  • fixed; CursorStream: No stack overflow on any size result (#929)
  • fixed; doc#remove now passes safe options
  • fixed; invalid use of $set during $pop
  • fixed; array#{$pop,$shift} mirror MongoDB behavior
  • fixed; no longer test non-required vals in string match (#934)
  • fixed; edge case with doc#inspect
  • fixed; setter order (#665)
  • fixed; setting invalid paths in strict mode (#916)
  • fixed; handle docs without id in DocumentArray#id method (#897)
  • fixed; do not save virtuals during model.update (#894)
  • fixed; sub doc toObject virtuals application (#889)
  • fixed; MongooseArray#pull of ObjectId (#881)
  • fixed; handle passing db name with any repl set string
  • fixed; default application of selected fields (#870)
  • fixed; subdoc paths reported in validation errors (#725)
  • fixed; incorrect reported num of affected docs in update ops (#862)
  • fixed; connection assignment in Model#model (#853)
  • fixed; stringifying arrays of docs (#852)
  • fixed; modifying subdoc and parent array works (#842)
  • fixed; passing undefined to next hook (#785)
  • fixed; Query#{update,remove}() works without callbacks (#788)
  • fixed; set/updating nested objects by parent pathname (#843)
  • fixed; allow null in number arrays (#840)
  • fixed; isNew on sub doc after insertion error (#837)
  • fixed; if an insert fails, set isNew back to false [boutell]
  • fixed; isSelected when only _id is selected (#730)
  • fixed; setting an unset default value (#742)
  • fixed; query#sort error messaging (#671)
  • fixed; support for passing $options with $regex
  • added; array of object literal notation in schema creates DocumentArrays
  • added; gt,gte,lt,lte query support for arrays (#902)
  • added; capped collection support (#938)
  • added; document versioning support
  • added; inclusion of deselected schema path (#786)
  • added; non-atomic array#pop
  • added; EmbeddedDocument constructor is now exposed in DocArray#create 7cf8beec
  • added; mapReduce support (#678)
  • added; support for a configurable minimize option #to{Object,JSON}(option) (#848)
  • added; support for strict: throws [regality]
  • added; support for named schema types (#795)
  • added; to{Object,JSON} schema options (#805)
  • added; findByIdAnd{Update,Remove}()
  • added; findOneAnd{Update,Remove}()
  • added; query.setOptions()
  • added; instance.update() (#794)
  • added; support specifying model in populate() [DanielBaulig]
  • added; lean query option [gitfy]
  • added; multi-atomic support to MongooseArray#nonAtomicPush
  • added; support for $set + other $atomic ops on single array
  • added; tests
  • updated; driver to 1.0.2
  • updated; query.sort() syntax to mirror query.select()
  • updated; clearer cast error msg for array numbers
  • updated; docs
  • updated; doc.clone 3x faster (#950)
  • updated; only create _id if necessary (#950)
3.0.0-rc0 August 16, 2013  
3.0.0-alpha2 August 16, 2013  
3.0.0-alpha1 August 16, 2013  
2.9.10 March 14, 2013  
2.9.9 February 13, 2013  
2.9.8 February 07, 2013  
2.9.7 January 07, 2013  
2.9.6 December 26, 2012  
2.9.5 December 10, 2012  
2.9.4 December 05, 2012  
2.9.3 November 10, 2012  
2.9.2 October 08, 2012  
2.9.1 September 29, 2012  
2.9.0 September 27, 2012  
2.8.3 September 10, 2012  
2.8.2 September 01, 2012  
2.8.1 August 29, 2012  
2.8.0 August 23, 2012  
2.7.4 August 02, 2012  
2.7.3 August 02, 2012
  • fixed; boolean $in queries (#998)
  • fixed field selection option on subdocs (#1022)
2.7.2 July 18, 2012
  • fixed; callback to conn#disconnect is optional (#875)
  • fixed; handle missing protocols in connection urls (#987)
  • fixed; saving modified/removed subdocs (#975)
  • updated; tests
2.7.1 June 28, 2012
  • fixed; sharding: when a document holds a null as a value of the shard key
  • fixed; update() using $pull on an array of Mixed (gh-735)
  • deprecated; MongooseNumber#{inc, increment, decrement} methods
  • tests; now using mocha
2.7.0 June 15, 2012
  • added; deprecation warnings to methods being removed in 3.x
2.6.8 June 15, 2012
  • fixed; edge case when using 'options' as a path name (#961)
2.6.7 June 08, 2012
  • fixed; ensure promise#error always emits instanceof Error
  • fixed; selection of _id w/ another excluded path (#954)
  • fixed; setting default DocumentArrays (#953)
2.6.6 June 06, 2012
  • fixed; stack overflow in query stream with large result sets (#929)
  • added; $gt, $gte, $lt, $lte support to arrays (#902)
  • fixed; pass option safe along to doc#remove() calls
2.6.5 May 24, 2012
  • fixed; do not save virtuals in Model.update (#894)
  • added; missing $ prefixed query aliases (going away in 3.x) (#884) [timoxley]
  • fixed; setting invalid paths in strict mode (#916)
  • fixed; resetting isNew after insert failure (#837) [boutell]
2.6.4 May 15, 2012
  • updated; backport string regex $options to 2.x
  • updated; use driver 1.0.2 (performance improvements) (#914)
  • fixed; calling MongooseDocumentArray#id when the doc has no _id (#897)
2.6.3 May 03, 2012
  • fixed; repl-set connectivity issues during failover on MongoDB 2.0.1
  • updated; driver to 1.0.0
  • fixed; virtuals application of subdocs when using toObject({ virtuals: true }) (#889)
  • fixed; MongooseArray#pull of ObjectId correctly updates the array itself (#881)
2.6.2 May 01, 2012
  • fixed; default field application of selected fields (#870)
2.6.1 April 30, 2012
  • fixed; connection assignment in mongoose#model (#853, #877)
  • fixed; incorrect reported num of affected docs in update ops (#862)
2.6.0 April 19, 2012
  • updated; hooks.js to 0.2.1
  • fixed; issue with passing undefined to a hook callback. thanks to [chrisleishman] for reporting.
  • fixed; updating/setting nested objects in strict schemas (#843) as reported by [kof]
  • fixed; Query#{update,remove}() work without callbacks again (#788)
  • fixed; modifying subdoc along with parent array $atomic op (#842)
2.5.14 April 13, 2012
  • fixed; setting an unset default value (#742)
  • fixed; doc.isSelected(otherpath) when only _id is selected (#730)
  • updated; docs
2.5.13 March 22, 2012
  • fixed; failing validation of unselected required paths (#730,#713)
  • fixed; emitting connection error when only one listener (#759)
  • fixed; MongooseArray#splice was not returning values (#784) [chrisleishman]
2.5.12 March 21, 2012
  • fixed; honor the safe option in all ensureIndex calls
  • updated; node-mongodb-native driver to 0.9.9-7
2.5.11 March 15, 2012
  • added; introspection for getters/setters (#745)
  • updated; node-mongodb-driver to 0.9.9-5
  • added; tailable method to Query (#769) [holic]
  • fixed; Number min/max validation of null (#764) [btamas]
  • added; more flexible user/password connection options (#738) [KarneAsada]
2.5.10 March 06, 2012
  • updated; node-mongodb-native driver to 0.9.9-4
  • added; Query#comment()
  • fixed; allow unsetting arrays
  • fixed; hooking the set method of subdocuments (#746)
  • fixed; edge case in hooks
  • fixed; allow $id and $ref in queries (fixes compatibility with mongoose-dbref) (#749) [richtera]
  • added; default path selection to SchemaTypes
2.5.9 February 22, 2012
  • fixed; properly cast nested atomic update operators for sub-documents
2.5.8 February 21, 2012
  • added; post 'remove' middleware includes model that was removed (#729) [timoxley]
2.5.7 February 09, 2012
  • fixed; RegExp validators on node >= v0.6.x
2.5.6 February 09, 2012
  • fixed; emit errors returned from db.collection() on the connection (were being swallowed)
  • added; can add multiple validators in your schema at once (#718) [diogogmt]
  • fixed; strict embedded documents (#717)
  • updated; docs [niemyjski]
  • added; pass number of affected docs back in model.update/save
2.5.5 February 03, 2012
  • fixed; RangeError: maximum call stack exceed error when removing docs with Number _id (#714)
2.5.4 February 03, 2012
  • fixed; RangeError: maximum call stack exceed error (#714)
2.5.3 February 02, 2012
  • added; doc#isSelected(path)
  • added; query#equals()
  • added; beta sharding support
  • added; more descript error msgs (#700) [obeleh]
  • added; document.modifiedPaths (#709) [ljharb]
  • fixed; only functions can be added as getters/setters (#707,704) [ljharb]
2.5.2 January 30, 2012
  • fixed; rollback -native driver to 0.9.7-3-5 (was causing timeouts and other replica set weirdness)
  • deprecated; MongooseNumber (will be moved to a separate repo for 3.x)
  • added; init event is emitted on schemas
2.5.1 January 27, 2012
  • fixed; honor strict schemas in Model.update (#699)
2.5.0 January 26, 2012
  • added; doc.toJSON calls toJSON on embedded docs when exists [jerem]
  • added; populate support for refs of type Buffer (#686) [jerem]
  • added; $all support for ObjectIds and Dates (#690)
  • fixed; virtual setter calling on instantiation when strict: true (#682) [hunterloftis]
  • fixed; doc construction triggering getters (#685)
  • fixed; MongooseBuffer check in deepEquals (#688)
  • fixed; range error when using Number _ids with instance.save() (#691)
  • fixed; isNew on embedded docs edge case (#680)
  • updated; driver to 0.9.8-3
  • updated; expose model() method within static methods
2.4.10 January 10, 2012
  • added; optional getter application in .toObject()/.toJSON() (#412)
  • fixed; nested $operators in $all queries (#670)
  • added; $nor support (#674)
  • fixed; bug when adding nested schema (#662) [paulwe]
2.4.9 January 04, 2012
  • updated; driver to 0.9.7-3-5 to fix Linux performance degradation on some boxes
2.4.8 December 22, 2011
  • updated; bump -native to 0.9.7.2-5
  • fixed; compatibility with date.js (#646) [chrisleishman]
  • changed; undocumented schema "lax" option to "strict"
  • fixed; default value population for strict schemas
  • updated; the nextTick helper for small performance gain. 1bee2a2
2.4.7 December 16, 2011
  • fixed; bug in 2.4.6 with path setting
  • updated; bump -native to 0.9.7.2-1
  • added; strict schema option [nw]
2.4.6 December 16, 2011
  • fixed; conflicting mods on update bug [sirlantis]
  • improved; doc.id getter performance
2.4.5 December 14, 2011
  • fixed; bad MongooseArray behavior in 2.4.2 - 2.4.4
2.4.4 December 14, 2011
  • fixed; MongooseArray#doAtomics throwing after sliced
2.4.3 December 14, 2011
  • updated; system.profile schema for MongoDB 2x
2.4.2 December 12, 2011
  • fixed; partially populating multiple children of subdocs (#639) [kenpratt]
  • fixed; allow Update of numbers to null (#640) [jerem]
2.4.1 December 02, 2011
  • added; options support for populate() queries
  • updated; -native driver to 0.9.7-1.4
2.4.0 November 30, 2011
  • added; QueryStreams (#614)
  • added; debug print mode for development
  • added; $within support to Array queries (#586) [ggoodale]
  • added; $centerSphere query support
  • fixed; $within support
  • added; $unset is now used when setting a path to undefined (#519)
  • added; query#batchSize support
  • updated; docs
  • updated; -native driver to 0.9.7-1.3 (provides Windows support)
2.3.13 November 15, 2011
  • fixed; required validation for Refs (#612) [ded]
  • added; $nearSphere support for Arrays (#610)
2.3.12 November 09, 2011
  • fixed; regression, objects passed to Model.update should not be changed (#605)
  • fixed; regression, empty Model.update should not be executed
2.3.11 November 08, 2011
  • fixed; using $elemMatch on arrays of Mixed types (#591)
  • fixed; allow using $regex when querying Arrays (#599)
  • fixed; calling Model.update with no atomic keys (#602)
2.3.10 November 05, 2011
  • fixed; model.update casting for nested paths works (#542)
2.3.9 November 04, 2011
  • fixed; deepEquals check for MongooseArray returned false
  • fixed; reset modified flags of embedded docs after save [gitfy]
  • fixed; setting embedded doc with identical values no longer marks modified [gitfy]
  • updated; -native driver to 0.9.6.23 [mlazarov]
  • fixed; Model.update casting (#542, #545, #479)
  • fixed; populated refs no longer fail required validators (#577)
  • fixed; populating refs of objects with custom ids works
  • fixed; $pop & $unset work with Model.update (#574)
  • added; more helpful debugging message for Schema#add (#578)
  • fixed; accessing .id when no _id exists now returns null (#590)
2.3.8 October 26, 2011
  • added; callback to query#findOne is now optional (#581)
2.3.7 October 24, 2011
  • fixed; wrapped save/remove callbacks in nextTick to mitigate -native swallowing thrown errors
2.3.6 October 21, 2011
  • fixed; exclusion of embedded doc _id from query results (#541)
2.3.5 October 19, 2011
  • fixed; calling queries without passing a callback works (#569)
  • fixed; populate() works with String and Number _ids too (#568)
2.3.4 October 18, 2011
  • added; Model.create now accepts an array as a first arg
  • fixed; calling toObject on a DocumentArray with nulls no longer throws
  • fixed; calling inspect on a DocumentArray with nulls no longer throws
  • added; MongooseArray#unshift support
  • fixed; save hooks now fire on embedded documents [gitfy] (#456)
  • updated; -native driver to 0.9.6-22
  • fixed; correctly pass $addToSet op instead of $push
  • fixed; $addToSet properly detects dates
  • fixed; $addToSet with multiple items works
  • updated; better node 0.6 Buffer support
2.3.3 October 12, 2011
  • fixed; population conditions in multi-query settings [vedmalex] (#563)
  • fixed; now compatible with Node v0.5.x
2.3.2 October 11, 2011
  • fixed; population of null subdoc properties no longer hangs (#561)
2.3.1 October 10, 2011
  • added; support for Query filters to populate() [eneko]
  • fixed; querying with number no longer crashes mongodb (#555) [jlbyrey]
  • updated; version of -native driver to 0.9.6-21
  • fixed; prevent query callbacks that throw errors from corrupting -native connection state
2.3.0 October 04, 2011
  • fixed; nulls as default values for Boolean now works as expected
  • updated; version of -native driver to 0.9.6-20
2.2.4 October 03, 2011
  • fixed; populate() works when returned array contains undefined/nulls
2.2.3 September 29, 2011
  • updated; version of -native driver to 0.9.6-19
2.2.2 September 28, 2011
  • added; $regex support to String [davidandrewcope]
  • added; support for other contexts like repl etc (#535)
  • fixed; clear modified state properly after saving
  • added; $addToSet support to Array
2.2.1 September 27, 2011
  • more descript error when casting undefined to string
  • updated; version of -native driver to 0.9.6-18
2.2.0 September 23, 2011
  • fixed; maxListeners warning on schemas with many arrays (#530)
  • changed; return / apply defaults based on fields selected in query (#423)
  • fixed; correctly detect Mixed types within schema arrays (#532)
2.1.4 September 20, 2011
  • fixed; new private methods that stomped on users code
  • changed; finished removing old "compat" support which did nothing
2.1.3 September 16, 2011
  • updated; version of -native driver to 0.9.6-15
  • added; emit error on connection when open fails [edwardhotchkiss]
  • added; index support to Buffers (thanks justmoon for helping track this down)
  • fixed; passing collection name via schema in conn.model() now works (thanks vedmalex for reporting)
2.1.2 September 07, 2011
  • fixed; Query#find with no args no longer throws
2.1.1 September 07, 2011
  • added; support Model.count(fn)
  • fixed; compatibility with node >=0.4.0 < 0.4.3
  • added; pass model.options.safe through with .save() so w:2, wtimeout:5000 options work [andrewjstone]
  • added; support for $type queries
  • added; support for Query#or
  • added; more tests
  • optimized populate queries
2.1.0 September 02, 2011
  • changed; document#validate is a public method
  • fixed; setting number to same value no longer marks modified (#476) [gitfy]
  • fixed; Buffers shouldn't have default vals
  • added; allow specifying collection name in schema (#470) [ixti]
  • fixed; reset modified paths and atomics after saved (#459)
  • fixed; set isNew on embedded docs to false after save
  • fixed; use self to ensure proper scope of options in doOpenSet (#483) [andrewjstone]
2.0.4 August 29, 2011
  • Fixed; Only send the depopulated ObjectId instead of the entire doc on save (DBRefs)
  • Fixed; Properly cast nested array values in Model.update (the data was stored in Mongo incorrectly but recast on document fetch was "fixing" it)
2.0.3 August 28, 2011
  • Fixed; manipulating a populated array no longer causes infinite loop in BSON serializer during save (#477)
  • Fixed; populating an empty array no longer hangs foreeeeeeeever (#481)
2.0.2 August 26, 2011
  • Fixed; Maintain query option key order (fixes 'bad hint' error from compound query hints)
2.0.1 August 25, 2011
  • Fixed; do not over-write the doc when no valide props exist in Model.update (#473)
2.0.0 August 25, 2011
  • Added; support for Buffers [justmoon]
  • Changed; improved error handling [maelstrom]
  • Removed: unused utils.erase
  • Fixed; support for passing other context object into Schemas (#234) [Sija]
  • Fixed; getters are no longer circular refs to themselves (#366)
  • Removed; unused compat.js
  • Fixed; getter/setter scopes are set properly
  • Changed; made several private properties more obvious by prefixing _
  • Added; DBRef support [guille]
  • Changed; removed support for multiple collection names per model
  • Fixed; no longer applying setters when document returned from db
  • Changed; default auto_reconnect to true
  • Changed; Query#bind no longer clones the query
  • Fixed; Model.update now accepts $pull, $inc and friends (#404)
  • Added; virtual type option support [nw]
1.8.4 August 22, 2011
  • Fixed; validation bug when instantiated with non-schema properties (#464) [jmreidy]
1.8.3 August 19, 2011
  • Fixed; regression in connection#open [jshaw86]
1.8.2 August 17, 2011
  • fixed; reset connection.readyState after failure [tomseago]
  • fixed; can now query positionally for non-embedded docs (arrays of numbers/strings etc)
  • fixed; embedded document query casting
  • added; support for passing options to node-mongo-native db, server, and replsetserver [tomseago]
1.8.1 August 10, 2011
  • fixed; ObjectIds were always marked modified
  • fixed; can now query using document instances
  • fixed; can now query/update using documents with subdocs
1.8.0 August 04, 2011
  • fixed; can now use $all with String and Number
  • fixed; can query subdoc array with $ne: null
  • fixed; instance.subdocs#id now works with custom _ids
  • fixed; do not apply setters when doc returned from db (change in bad behavior)
1.7.4 July 25, 2011
  • fixed; sparse now a valid seperate schema option
  • fixed; now catching cast errors in queries
  • fixed; calling new Schema with object created in vm.runInNewContext now works (#384) [Sija]
  • fixed; String enum was disallowing null
  • fixed; Find by nested document _id now works (#389)
1.7.3 July 16, 2011
  • fixed; MongooseArray#indexOf now works with ObjectIds
  • fixed; validation scope now set properly (#418)
  • fixed; added missing colors dependency (#398)
1.7.2 July 13, 2011
  • changed; node-mongodb-native driver to v0.9.6.7
1.6.0 July 07, 2011
  • changed; .save() errors are now emitted on the instances db instead of the instance 9782463fc
  • fixed; errors occurring when creating indexes now properly emit on db
  • added; $maxDistance support to MongooseArrays
  • fixed; RegExps now work with $all
  • changed; node-mongodb-native driver to v0.9.6.4
  • fixed; model names are now accessible via .modelName
  • added; Query#slaveOk support
1.5.0 June 28, 2011
  • changed; saving without a callback no longer ignores the error (@bnoguchi)
  • changed; hook-js version bump to 0.1.9
  • changed; node-mongodb-native version bumped to 0.9.6.1 - When .remove() doesn't return an error, null is no longer passed.
  • fixed; two memory leaks (@justmoon)
  • added; sparse index support
  • added; more ObjectId conditionals (gt, lt, gte, lte) (@phillyqueso)
  • added; options are now passed in model#remote (@JerryLuke)
1.4.0 June 10, 2011
  • bumped hooks-js dependency (fixes issue passing null as first arg to next())
  • fixed; document#inspect now works properly with nested docs
  • fixed; 'set' now works as a schema attribute (GH-365)
  • fixed; _id is now set properly within pre-init hooks (GH-289)
  • added; Query#distinct / Model#distinct support (GH-155)
  • fixed; embedded docs now can use instance methods (GH-249)
  • fixed; can now overwrite strings conflicting with schema type
1.3.7 June 03, 2011
  • added MongooseArray#splice support
  • fixed; 'path' is now a valid Schema pathname
  • improved hooks (utilizing https://github.com/bnoguchi/hooks-js)
  • fixed; MongooseArray#$shift now works (never did)
  • fixed; Document.modified no longer throws
  • fixed; modifying subdoc property sets modified paths for subdoc and parent doc
  • fixed; marking subdoc path as modified properly persists the value to the db
  • fixed; RexExps can again be saved ( #357 )
1.3.6 May 19, 2011
  • fixed; corrected casting for queries against array types
  • added; Document#set now accepts Document instances
1.3.5 May 19, 2011
  • fixed; $ne queries work properly with single vals
  • added; #inspect() methods to improve console.log output
1.3.4 May 17, 2011
  • fixed; find by Date works as expected (#336)
  • added; geospatial 2d index support
  • added; support for $near (#309)
  • updated; node-mongodb-native driver
  • fixed; updating numbers work (#342)
  • added; better error msg when try to remove an embedded doc without an _id (#307)
  • added; support for 'on-the-fly' schemas (#227)
  • changed; virtual id getters can now be skipped
  • fixed; .index() called on subdoc schema now works as expected
  • fixed; db.setProfile() now buffers until the db is open (#340)
1.3.3 April 27, 2011
  • fixed; corrected query casting on nested mixed types
1.3.2 April 27, 2011
  • fixed; query hints now retain key order
1.3.1 April 27, 2011
  • fixed; setting a property on an embedded array no longer overwrites entire array (GH-310)
  • fixed; setting nested properties works when sibling prop is named "type"
  • fixed; isModified is now much finer grained when .set() is used (GH-323)
  • fixed; mongoose.model() and connection.model() now return the Model (GH-308, GH-305)
  • fixed; can now use $gt, $lt, $gte, $lte with String schema types (GH-317)
  • fixed; .lowercase() -> .toLowerCase() in pluralize()
  • fixed; updating an embedded document by index works (GH-334)
  • changed; .save() now passes the instance to the callback (GH-294, GH-264)
  • added; can now query system.profile and system.indexes collections
  • added; db.model('system.profile') is now included as a default Schema
  • added; db.setProfiling(level, ms, callback)
  • added; Query#hint() support
  • added; more tests
  • updated node-mongodb-native to 0.9.3
1.3.0 April 19, 2011
  • changed; save() callbacks now fire only once on failed validation
  • changed; Errors returned from save() callbacks now instances of ValidationError
  • fixed; MongooseArray#indexOf now works properly
1.2.0 April 11, 2011
  • changed; MongooseNumber now casts empty string to null
1.1.25 April 08, 2011
  • fixed; post init now fires at proper time
1.1.24 April 03, 2011
  • fixed; pushing an array onto an Array works on existing docs
1.1.23 April 01, 2011
  • Added Model#model
1.1.22 March 31, 2011
  • Fixed; $in queries on mixed types now work
1.1.21 March 31, 2011
  • Fixed; setting object root to null/undefined works
1.1.20 March 31, 2011
  • Fixed; setting multiple props on null field works
1.1.19 March 31, 2011
  • Fixed; no longer using $set on paths to an unexisting fields
1.1.18 March 30, 2011
  • Fixed; non-mixed type object setters work after initd from null
1.1.17 March 30, 2011
  • Fixed; nested object property access works when root initd with null value
1.1.16 March 28, 2011
  • Fixed; empty arrays are now saved
1.1.15 March 28, 2011
  • Fixed; null and undefined are set atomically.
1.1.14 March 28, 2011
  • Changed; more forgiving date casting, accepting '' as null.
1.1.13 March 26, 2011
  • Fixed setting values as undefined.
1.1.12 March 26, 2011
  • Fixed; nested objects now convert to JSON properly
  • Fixed; setting nested objects directly now works
  • Update node-mongodb-native
1.1.11 March 25, 2011
  • Fixed for use of type as a key.
1.1.10 March 24, 2011
  • Changed; Make sure to only ensure indexes while connected

1.1.9 / 2011-03-2

  • Fixed; Mixed can now default to empty arrays
  • Fixed; keys by the name 'type' are now valid
  • Fixed; null values retrieved from the database are hydrated as null values.
  • Fixed repeated atomic operations when saving a same document twice.
1.1.9 March 23, 2011  
1.1.8 March 23, 2011
  • Fixed 'id' overriding. [bnoguchi]
1.1.7 March 23, 2011
  • Fixed RegExp query casting when querying against an Array of Strings [bnoguchi]
  • Fixed getters/setters for nested virtualsl. [bnoguchi]
1.1.6 March 22, 2011
  • Only doValidate when path exists in Schema [aheckmann]
  • Allow function defaults for Array types [aheckmann]
  • Fix validation hang [aheckmann]
  • Fix setting of isRequired of SchemaType [aheckmann]
  • Fix SchemaType#required(false) filter [aheckmann]
  • More backwards compatibility [aheckmann]
  • More tests [aheckmann]
1.1.5 March 15, 2011
  • Added support for uri, db, fn and uri, fn signatures for replica sets.
  • Improved/extended replica set tests.
1.1.4 March 10, 2011
  • Fixed; running an empty Query doesn't throw. [aheckmann]
  • Changed; Promise#addBack returns promise. [aheckmann]
  • Added streaming cursor support. [aheckmann]
  • Changed; Query#update defaults to use$SetOnSave now. [brian]
  • Added more docs.
1.1.3 March 05, 2011
  • Added Promise#resolve [aheckmann]
  • Fixed backward compatibility with nulls [aheckmann]
  • Changed; Query#{run,exec} return promises [aheckmann]
1.1.2 March 03, 2011
  • Restored Query#exec and added notion of default operation [brian]
  • Fixed ValidatorError messages [brian]
1.1.1 March 02, 2011
  • Added SchemaType String lowercase, uppercase, trim.
  • Public exports (Model, Document) and tests.
  • Added ObjectId casting support for Documents.
1.1.0 February 26, 2011
  • Added support for replica sets.
1.0.16 February 19, 2011
  • Added $nin as another whitelisted $conditional for SchemaArray [brian]
  • Changed #with to #where [brian]
  • Added ability to use $in conditional with Array types [brian]
1.0.15 February 19, 2011
  • Added id virtual getter for documents to easily access the hexString of the _id.
1.0.14 February 18, 2011
  • Fix for arrays within subdocuments [brian]
1.0.13 February 17, 2011
  • Fixed embedded documents saving.
1.0.12 February 15, 2011
  • Minor refactorings [brian]
1.0.11 February 14, 2011
  • Query refactor and $ne, $slice, $or, $size, $elemMatch, $nin, $exists support [brian]
  • Named scopes sugar [brian]
1.0.10 February 12, 2011
  • Updated node-mongodb-native driver [thanks John Allen]
1.0.8 February 09, 2011
  • Fixed for collection-level buffering of commands [gitfy]
  • Fixed Document#toJSON [dalejefferson]
  • Fixed Connection authentication [robrighter]
  • Fixed clash of accessors in getters/setters [eirikurn]
  • Improved Model#save promise handling
1.0.7 February 06, 2011
  • Fixed memory leak warnings for test suite on 0.3
  • Fixed querying documents that have an array that contain at least one specified member. [brian]
  • Fixed default value for Array types (fixes GH-210). [brian]
  • Fixed example code.
1.0.6 February 03, 2011
  • Fixed post middleware
  • Fixed; it's now possible to instantiate a model even when one of the paths maps to an undefined value [brian]
1.0.5 February 03, 2011
  • Fixed; combo $push and $pushAll auto-converts into a $pushAll [brian]
  • Fixed; combo $pull and $pullAll auto-converts to a single $pullAll [brian]
  • Fixed; $pullAll now removes said members from array before save (so it acts just like pushAll) [brian]
  • Fixed; multiple $pulls and $pushes become a single $pullAll and $pushAll. Moreover, $pull now modifies the array before save to reflect the immediate change [brian]
  • Added tests for nested shortcut getters [brian]
  • Added tests that show that Schemas with nested Arrays don't apply defaults [brian]
1.0.4 February 03, 2011
  • Added MongooseNumber#toString
  • Added MongooseNumber unit tests
1.0.3 February 03, 2011
  • Make sure safe mode works with Model#save
  • Changed Schema options: safe mode is now the default
  • Updated node-mongodb-native to HEAD
1.0.2 February 02, 2011
  • Added a Model.create shortcut for creating documents. [brian]
  • Fixed; we can now instantiate models with hashes that map to at least one null value. [brian]
  • Fixed Schema with more than 2 nested levels. [brian]
1.0.1 February 02, 2011
  • Improved MongooseNumber, works almost like the native except for typeof not being 'number'.
1.0.0 February 01, 2011  
0.0.6 February 02, 2011  
0.0.5 December 30, 2010  
0.0.4 December 20, 2010  
0.0.3 December 20, 2010  
0.0.2 December 20, 2010  
0.0.1 December 20, 2010