- fixed; properly cast nested atomic update operators for sub-documents
- added; post 'remove' middleware includes model that was removed (#729) [timoxley]
- fixed; RegExp validators on node >= v0.6.x
- 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
- fixed; RangeError: maximum call stack exceed error when removing docs with Number _id (#714)
- fixed; RangeError: maximum call stack exceed error (#714)
- 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]
- 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
- fixed; honor strict schemas in Model.update (#699)
- 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
- 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]
- updated; driver to 0.9.7-3-5 to fix Linux performance degradation on some boxes
- 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
- fixed; bug in 2.4.6 with path setting
- updated; bump -native to 0.9.7.2-1
- added; strict schema option [nw]
- fixed; conflicting mods on update bug [sirlantis]
- improved; doc.id getter performance
- fixed; bad MongooseArray behavior in 2.4.2 - 2.4.4
- fixed; MongooseArray#doAtomics throwing after sliced
- updated; system.profile schema for MongoDB 2x
- fixed; partially populating multiple children of subdocs (#639) [kenpratt]
- fixed; allow Update of numbers to null (#640) [jerem]
- added; options support for populate() queries
- updated; -native driver to 0.9.7-1.4
- 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)
- fixed; required validation for Refs (#612) [ded]
- added; $nearSphere support for Arrays (#610)
- fixed; regression, objects passed to Model.update should not be changed (#605)
- fixed; regression, empty Model.update should not be executed
- 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)
- fixed; model.update casting for nested paths works (#542)
- 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)
- added; callback to query#findOne is now optional (#581)
- fixed; wrapped save/remove callbacks in nextTick to mitigate -native swallowing thrown errors
- fixed; exclusion of embedded doc _id from query results (#541)
- fixed; calling queries without passing a callback works (#569)
- fixed; populate() works with String and Number _ids too (#568)
- 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
- fixed; population conditions in multi-query settings [vedmalex] (#563)
- fixed; now compatible with Node v0.5.x
- fixed; population of null subdoc properties no longer hangs (#561)
- 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
- fixed; nulls as default values for Boolean now works as expected
- updated; version of -native driver to 0.9.6-20
- fixed; populate() works when returned array contains undefined/nulls
- updated; version of -native driver to 0.9.6-19
- 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
- more descript error when casting undefined to string
- updated; version of -native driver to 0.9.6-18
- 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)
- fixed; new private methods that stomped on users code
- changed; finished removing old "compat" support which did nothing
- 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)
- fixed; Query#find with no args no longer throws
- 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
- 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]
- 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)
- 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)
- Fixed; Maintain query option key order (fixes 'bad hint' error from compound query hints)
- Fixed; do not over-write the doc when no valide props exist in Model.update (#473)
- 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]
- Fixed; validation bug when instantiated with non-schema properties (#464) [jmreidy]
- Fixed; regression in connection#open [jshaw86]
- 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]
- fixed; ObjectIds were always marked modified
- fixed; can now query using document instances
- fixed; can now query/update using documents with subdocs
- 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)
- 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)
- fixed; MongooseArray#indexOf now works with ObjectIds
- fixed; validation scope now set properly (#418)
- fixed; added missing colors dependency (#398)
- changed; node-mongodb-native driver to v0.9.6.7
- changed; roll back node-mongodb-native driver to v0.9.6.4
- fixed; collection name misspelling [mathrawka]
- fixed; 2nd param is required for ReplSetServers [kevinmarvin]
- fixed; MongooseArray behaves properly with Object.keys
- changed; node-mongodb-native driver to v0.9.6.6
- fixed/changed; Mongodb segfault when passed invalid ObjectId (#407)
- This means invalid data passed to the ObjectId constructor will now error
- 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
- 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)
- 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
- 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 )
- fixed; corrected casting for queries against array types
- added; Document#set now accepts Document instances
- fixed; $ne queries work properly with single vals
- added; #inspect() methods to improve console.log output
- 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)
- fixed; corrected query casting on nested mixed types
- fixed; query hints now retain key order
- 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
- 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
- changed; MongooseNumber now casts empty string to null
- fixed; post init now fires at proper time
- fixed; pushing an array onto an Array works on existing docs
- Added Model#model
- Fixed; $in queries on mixed types now work
- Fixed; setting object root to null/undefined works
- Fixed; setting multiple props on null field works
- Fixed; no longer using $set on paths to an unexisting fields
- Fixed; non-mixed type object setters work after initd from null
- Fixed; nested object property access works when root initd with null value
- Fixed; empty arrays are now saved
- Fixed;
null
andundefined
are set atomically.
- Changed; more forgiving date casting, accepting '' as null.
- Fixed setting values as
undefined
.
- Fixed; nested objects now convert to JSON properly
- Fixed; setting nested objects directly now works
- Update node-mongodb-native
- Fixed for use of
type
as a key.
- Changed; Make sure to only ensure indexes while connected
- 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.
- Fixed 'id' overriding. [bnoguchi]
- Fixed RegExp query casting when querying against an Array of Strings [bnoguchi]
- Fixed getters/setters for nested virtualsl. [bnoguchi]
- 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]
- Added support for
uri, db, fn
anduri, fn
signatures for replica sets. - Improved/extended replica set tests.
- 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.
- Added Promise#resolve [aheckmann]
- Fixed backward compatibility with nulls [aheckmann]
- Changed; Query#{run,exec} return promises [aheckmann]
- Restored Query#exec and added notion of default operation [brian]
- Fixed ValidatorError messages [brian]
- Added SchemaType String
lowercase
,uppercase
,trim
. - Public exports (
Model
,Document
) and tests. - Added ObjectId casting support for
Document
s.
- Added support for replica sets.
- Added $nin as another whitelisted $conditional for SchemaArray [brian]
- Changed #with to #where [brian]
- Added ability to use $in conditional with Array types [brian]
- Added
id
virtual getter for documents to easily access the hexString of the_id
.
- Fix for arrays within subdocuments [brian]
- Fixed embedded documents saving.
- Minor refactorings [brian]
- Query refactor and $ne, $slice, $or, $size, $elemMatch, $nin, $exists support [brian]
- Named scopes sugar [brian]
- Updated node-mongodb-native driver [thanks John Allen]
- Fixed single member arrays as defaults [brian]
- 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
- 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.
- Fixed
post
middleware - Fixed; it's now possible to instantiate a model even when one of the paths maps to an undefined value [brian]
- 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]
- Added MongooseNumber#toString
- Added MongooseNumber unit tests
- Make sure safe mode works with Model#save
- Changed Schema options: safe mode is now the default
- Updated node-mongodb-native to HEAD
- 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]
- Improved
MongooseNumber
, works almost like the native except fortypeof
not being'number'
.