fruitstand
Version:
1,215 lines (1,045 loc) • 75.5 kB
Markdown
3.8.8 / 2014-02-22
==================
* fixed; saving Buffers #1914
* updated; expose connection states for user-land #1926 [yorkie](https://github.com/yorkie)
* updated; mquery to 0.5.3
* updated; added get / set to reserved path list #1903 [tstrimple](https://github.com/tstrimple)
* docs; README code highlighting, syntax fixes #1930 [IonicaBizau](https://github.com/IonicaBizau)
* docs; fixes link in the doc at #1925 [kapeels](https://github.com/kapeels)
* docs; add a missed word 'hook' for the description of the post-hook api #1924 [ipoval](https://github.com/ipoval)
3.8.7 / 2014-02-09
==================
* fixed; sending safe/read options in Query#exec #1895
* fixed; findOneAnd..() with sort #1887
3.8.6 / 2014-01-30
==================
* fixed; setting readPreferences #1895
3.8.5 / 2014-01-23
==================
* fixed; ssl setting when using URI #1882
* fixed; findByIdAndUpdate now respects the overwrite option #1809 [owenallenaz](https://github.com/owenallenaz)
3.8.4 / 2014-01-07
==================
* 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](https://github.com/daemon1981)
* fixed; geoSearch with no results timeout #1846 [ghartnett](https://github.com/ghartnett)
* fixed; infitite recursion in ValidationError #1834 [chetverikov](https://github.com/chetverikov)
3.8.3 / 2013-12-17
==================
* fixed; setting empty array with model.update #1838
* docs; fix url
3.8.2 / 2013-12-14
==================
* fixed; enum validation of multiple values #1778 [heroicyang](https://github.com/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](https://github.com/shirish87)
* fixed; model.stream() not hydrating discriminators correctly #1792 [j](https://github.com/j)
* docs: Stablility -> Stability [nikmartin](https://github.com/nikmartin)
* tests; improve shard error handling
3.8.1 / 2013-11-19
==================
* fixed; mishandling of Dates with minimize/getters #1764
* fixed; Normalize bugs.email, so `npm` will shut up #1769 [refack](https://github.com/refack)
* docs; Improve the grammar where "lets us" was used #1777 [alexyoung](https://github.com/alexyoung)
* docs; Fix some grammatical issues in the documentation #1777 [alexyoung](https://github.com/alexyoung)
* docs; fix Query api exposure
* docs; fix return description
* docs; Added Notes on findAndUpdate() #1750 [sstadelman](https://github.com/sstadelman)
* docs; Update version number in README #1762 [Fodi69](https://github.com/Fodi69)
3.8.0 / 2013-10-31
==================
* 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](https://github.com/j)
* added; support disabled collection name pluralization #1350 #1707 [refack](https://github.com/refack)
* added; support for GeoJSON to Query#near [ebensing](https://github.com/ebensing)
* added; stand-alone base query support - query.toConstructor() [ebensing](https://github.com/ebensing)
* added; promise support to geoSearch #1614 [ebensing](https://github.com/ebensing)
* added; promise support for geoNear #1614 [ebensing](https://github.com/ebensing)
* added; connection.useDb() #1124 [ebensing](https://github.com/ebensing)
* added; promise support to model.mapReduce()
* added; promise support to model.ensureIndexes()
* added; promise support to model.populate()
* added; benchmarks [ebensing](https://github.com/ebensing)
* added; publicly exposed connection states #1585
* added; $geoWithin support #1529 $1455 [ebensing](https://github.com/ebensing)
* added; query method chain validation
* added; model.update `overwrite` option
* added; model.geoNear() support #1563 [ebensing](https://github.com/ebensing)
* added; model.geoSearch() support #1560 [ebensing](https://github.com/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](https://github.com/JoeWagner)
* added; aggregation query builder #1404 [njoyard](https://github.com/njoyard)
* fixed; document.toObject when using `minimize` and `getters` options #1607 [JedWatson](https://github.com/JedWatson)
* fixed; Mixed types can now be required #1722 [Reggino](https://github.com/Reggino)
* fixed; do not pluralize model names not ending with letters #1703 [refack](https://github.com/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](https://github.com/ebensing)
* fixed; handle another versioning edge case #1520
* fixed; excluding subdocument fields #1280 [ebensing](https://github.com/ebensing)
* fixed; allow array properties to be set to null with findOneAndUpdate [aheuermann](https://github.com/aheuermann)
* fixed; subdocuments now use own toJSON opts #1376 [ebensing](https://github.com/ebensing)
* fixed; model#geoNear fulfills promise when results empty #1658 [ebensing](https://github.com/ebensing)
* fixed; utils.merge no longer overrides props and methods #1655 [j](https://github.com/j)
* fixed; subdocuments now use their own transform #1412 [ebensing](https://github.com/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](https://github.com/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](https://github.com/ebensing)
* fixed; issue with positional operator on ref docs #1572 [ebensing](https://github.com/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](https://github.com/yorchopolis)
* docs; fixed up the README and examples [ebensing](https://github.com/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](https://github.com/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](https://github.com/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](https://github.com/j)
* added; support disabled collection name pluralization #1350 #1707 [refack](https://github.com/refack)
* fixed; do not pluralize model names not ending with letters #1703 [refack](https://github.com/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](https://github.com/ebensing)
* added; stand-alone base query support - query.toConstructor() [ebensing](https://github.com/ebensing)
* added; promise support to geoSearch #1614 [ebensing](https://github.com/ebensing)
* added; promise support for geoNear #1614 [ebensing](https://github.com/ebensing)
* fixed; setters not firing on null values #1445 [ebensing](https://github.com/ebensing)
* fixed; handle another versioning edge case #1520
* fixed; excluding subdocument fields #1280 [ebensing](https://github.com/ebensing)
* fixed; allow array properties to be set to null with findOneAndUpdate [aheuermann](https://github.com/aheuermann)
* fixed; subdocuments now use own toJSON opts #1376 [ebensing](https://github.com/ebensing)
* fixed; model#geoNear fulfills promise when results empty #1658 [ebensing](https://github.com/ebensing)
* fixed; utils.merge no longer overrides props and methods #1655 [j](https://github.com/j)
* fixed; subdocuments now use their own transform #1412 [ebensing](https://github.com/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](https://github.com/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](https://github.com/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](https://github.com/ebensing)
* fixed; issue with positional operator on ref docs #1572 [ebensing](https://github.com/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](https://github.com/ebensing)
* added; publicly exposed connection states #1585
* added; $geoWithin support #1529 $1455 [ebensing](https://github.com/ebensing)
* added; query method chain validation
* added; model.update `overwrite` option
* added; model.geoNear() support #1563 [ebensing](https://github.com/ebensing)
* added; model.geoSearch() support #1560 [ebensing](https://github.com/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](https://github.com/JoeWagner)
* added; aggregation query builder #1404 [njoyard](https://github.com/njoyard)
* updated; integrate mquery #1562 [ebensing](https://github.com/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](https://github.com/yorchopolis)
* docs; fixed up the README and examples [ebensing](https://github.com/ebensing)
* website; add unstable docs
* website; many improvements
* website; fix copyright #1439
* website; server.js -> static.js #1546 [nikmartin](https://github.com/nikmartin)
* examples; improved and expanded [ebensing](https://github.com/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](https://github.com/ebensing)
* fixed; properly exclude subdocument fields #1280 [ebensing](https://github.com/ebensing)
* fixed; cast error in findAndModify #1643 [aheuermann](https://github.com/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.6.17 / 2013-08-13
===================
* updated; driver to 1.3.18 (fixes memory leak)
* fixed; casting ref docs on creation #1606
* docs; query options
3.6.16 / 2013-08-08
===================
* added; publicly expose connection states #1585
* fixed; limit applies to individual items on population #1490 [ebensing](https://github.com/ebensing)
* fixed; positional operator casting in updates #1572 [ebensing](https://github.com/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 / 2013-07-16
==================
* 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 / 2013-07-05
===================
* updated; driver to 1.3.11
* fixed; issue with findOneAndUpdate not returning null on upserts #1533 [ebensing](https://github.com/ebensing)
* fixed; missing return statement in SchemaArray#$geoIntersects() #1498 [bsrykt](https://github.com/bsrykt)
* fixed; wrong isSelected() behavior #1521 [kyano](https://github.com/kyano)
* docs; note about toObject behavior during save()
* docs; add callbacks details #1547 [nikmartin](https://github.com/nikmartin)
3.6.13 / 2013-06-27
===================
* fixed; calling model.distinct without conditions #1541
* fixed; regression in Query#count() #1542
* now working on 3.6.13
3.6.12 / 2013-06-25
===================
* updated; driver to 1.3.10
* updated; clearer capped collection error message #1509 [bitmage](https://github.com/bitmage)
* fixed; MongooseBuffer subtype loss during casting #1517 [zedgu](https://github.com/zedgu)
* fixed; docArray#id when doc.id is disabled #1492
* fixed; docArray#id now supports matches on populated arrays #1492 [pgherveou](https://github.com/pgherveou)
* website; fix example
* website; improve _id disabling example
* website; fix typo #1494 [dejj](https://github.com/dejj)
* docs; added a 'Requesting new features' section #1504 [shovon](https://github.com/shovon)
* docs; improve subtypes description
* docs; clarify _id disabling
* docs: display by alphabetical order the methods list #1508 [nicolasleger](https://github.com/nicolasleger)
* tests; refactor isSelected checks
* tests; remove pointless test
* tests; fixed timeouts
3.6.11 / 2013-05-15
===================
* 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](https://github.com/nrako)
* docs; add doc.increment() example
* docs; add $size example
* docs; add "distinct" example
3.6.10 / 2013-05-09
==================
* 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 / 2013-05-02
==================
* fixed; depopulation of mixed documents #1471
* fixed; use of $options in array #1462
* tests; fix race condition
* docs; fix default example
3.6.8 / 2013-04-25
==================
* updated; driver to 1.3.0
* fixed; connection.model should retain options #1458 [vedmalex](https://github.com/vedmalex)
* tests; 4-5 seconds faster
3.6.7 / 2013-04-19
==================
* fixed; population regression in 3.6.6 #1444
3.6.6 / 2013-04-18
==================
* fixed; saving populated new documents #1442
* fixed; population regession in 3.6.5 #1441
* website; fix copyright #1439
3.6.5 / 2013-04-15
==================
* 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](https://github.com/vedmalex)
* fixed; read pref typos #1422 [kyano](https://github.com/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 / 2013-04-03
==================
* 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 / 2013-04-02
==================
* 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 / 2013-03-29
==================
* fixed; corrupted sub-doc array #1408
* fixed; document#update returns a Query #1397
* docs; readpref strategy
3.6.1 / 2013-03-27
==================
* 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](https://github.com/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.0 / 2013-03-18
==================
* changed; cast 'true'/'false' to boolean #1282 [mgrach](https://github.com/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](https://github.com/geoah)
* added; performance improvements to populate() [263ece9](https://github.com/LearnBoost/mongoose/commit/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](https://github.com/aheckmann/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](https://github.com/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](https://github.com/jackdbernier)
* website; compat with node 0.10
* website; add news section
* website; use T for generic type
* benchmark; make adjustable
3.6.0rc1 / 2013-03-12
======================
* 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](https://github.com/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 / 2013-02-03
======================
* changed; cast 'true'/'false' to boolean #1282 [mgrach](https://github.com/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](https://github.com/jplock)
* refactor; move expires index to SchemaDate #1328
* refactor; internal document properties #1171 #1184
* added; performance improvements to populate() [263ece9](https://github.com/LearnBoost/mongoose/commit/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](https://github.com/aheckmann/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.5.16 / 2013-08-13
===================
* updated; driver to 1.3.18
3.5.15 / 2013-07-26
==================
* 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 / 2013-05-15
===================
* 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](https://github.com/nrako)
3.5.13 / 2013-05-09
==================
* update driver to 1.3.3
* fixed; use of $options in array #1462
3.5.12 / 2013-04-25
===================
* updated; driver to 1.3.0
* fixed; connection.model should retain options #1458 [vedmalex](https://github.com/vedmalex)
* fixed; read pref typos #1422 [kyano](https://github.com/kyano)
3.5.11 / 2013-04-03
==================
* fixed; +field conflict with $slice #1370
* fixed; RangeError in ValidationError.toString() #1296
* fixed; nested deselection conflict #1333
* remove time from Makefile
3.5.10 / 2013-04-02
==================
* fixed; setting subdocuments deeply nested fields #1394
* fixed; do not alter schema arguments #1364
3.5.9 / 2013-03-15
==================
* 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 / 2013-03-12
==================
* added; auth option in connection [geoah](https://github.com/geoah)
* fixed; CastError race condition
* docs; add note about stream compatibility with node 0.8
3.5.7 / 2013-02-22
==================
* 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](https://github.com/afshinm)
* website; update homepage
* website; migragtion: emphasize impact of strict docs #1264
3.5.6 / 2013-02-14
==================
* 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](https://github.com/risseraka)
* website; clarify where help is available
* website; fix source code links #1272 [floatingLomas](https://github.com/floatingLomas)
* docs; be specific about _id schema option #1103
* docs; add ensureIndex error handling example
* docs; README
* docs; CONTRIBUTING.md
3.5.5 / 2013-01-29
==================
* 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](https://github.com/rened)
* docs; fixed typo in migration docs [Prinzhorn](https://github.com/Prinzhorn)
* docs; fixed incorrect annotation in SchemaNumber#min [bilalq](https://github.com/bilalq)
* docs; updated
3.5.4 / 2013-01-07
==================
* changed; "_pres" & "_posts" are now reserved pathnames #1261
* updated; driver to 1.2.8
* fixed; exception when reopening a replica set. #1263 [ethankan](https://github.com/ethankan)
* website; updated
3.5.3 / 2012-12-26
==================
* 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 / 2012-12-17
==================
* fixed; using auth with replica sets #1253
3.5.1 / 2012-12-12
==================
* fixed; regression when using subdoc with `path` as pathname #1245 [daeq](https://github.com/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 / 2012-12-10
==================
* 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](https://github.com/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](https://github.com/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 / 2012-11-10
==================
* added; support for generic toJSON/toObject transforms #1160 #1020 #1197
* added; doc.set() merge support #1148 [NuORDER](https://github.com/NuORDER)
* added; query#add support #1188 [aleclofabbro](https://github.com/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](https://github.com/anotheri)
* fixed; overwriting of query arguments #1176
* docs; fix expires examples
* docs; transforms
* docs; schema `collection` option docs [hermanjunge](https://github.com/hermanjunge)
* website; updated
* tests; added
3.3.1 / 2012-10-11
==================
* fixed; allow goose.connect(uris, dbname, opts) #1144
* docs; persist API private checked state across page loads
3.3.0 / 2012-10-10
==================
* 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](https://github.com/mrickard)
* tests; added
* docs; updated
3.2.2 / 2012-10-08
==================
* 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](https://github.com/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 / 2012-09-28
==================
* fixed; remove query batchSize option default of 1000 https://github.com/learnboost/mongoose/commit/3edaa8651
* docs; updated
* website; updated
3.2.0 / 2012-09-27
==================
* 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](https://github.com/dpatti)
* tests; added
* website; more documentation
* website; fixed layout issue #1111 [SlashmanX](https://github.com/SlashmanX)
* website; refactored [guille](https://github.com/guille)
3.1.2 / 2012-09-10
==================
* 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.1 / 2012-08-31
==================
* updated; driver to 1.1.6
3.1.0 / 2012-08-29
==================
* 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](https://github.com/brettz9)
* updated; driver to 1.1.5
* fixed; retain virtual setter return values (#1069)
3.0.3 / 2012-08-23
==================
* fixed; use of nested paths beginning w/ numbers #1062
* fixed; query population edge case #1053 #1055 [jfremy](https://github.com/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](https://github.com/eknkc)
* docs
3.0.2 / 2012-08-17
==================
* 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 / 2012-08-11
==================
* fixed; throw Error on bad validators (1044)
* fixed; typo in EmbeddedDocument#parentArray [lackac]
* fixed; repair mongoose.SchemaTypes alias
* updated; docs
3.0.0 / 2012-08-07
==================
* 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 / 2012-08-01
=====================
* 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 / 2012-07-18
=========================
* 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] (#859)
* 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 / 2012-06-15
=========================
* 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)
2.7.3 / 2012-08-01
==================
* fixed; boolean $in queries (#998)
* fixed field selection option on subdocs (#1022)
2.7.2 / 2012-07-18
==================
* 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 / 2012-06-26
===================
* 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 / 2012-06-14
===================
* added; deprecation warnings to methods being removed in 3.x
2.6.8 / 2012-06-14
===================
* fixed; edge case when using 'options' as a path name (#961)
2.6.7 / 2012-06-08
===================
* 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 / 2012-06-06
===================
* 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 / 2012-05-24
===================
* 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 / 2012-05-15
===================
* 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 / 2012-05-03
===================
* 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 / 2012-04-30
===================
* fixed; default field application of selected fields (#870)
2.6.1 / 2012-04-30
===================
* fixed; connection assignment in mongoose#model (#853, #877)
* fixed; incorrect reported num of affected docs in update ops (#862)
2.6.0 / 2012-04-19
===================
* 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 / 2012-04-13
===================
* fixed; setting an unset default value (#742)
* fixed; doc.isSelected(otherpath) when only _id is selected (#730)
* updated; docs
2.5.13 / 2012-03-22
===================
* fixed; failing validation of unselected required paths (#730,#713)
* fixed; emitting connection error when only