Releases: mongodb/mongoid
Release list
8.1.11
The MongoDB Ruby team is pleased to announce version 8.1.11 of the mongoid gem - a Ruby ODM for MongoDB. This is a new patch release in the 8.1.x series of Mongoid.
Install this release using RubyGems via the command line as follows:
gem install -v 8.1.11 mongoid
Or simply add it to your Gemfile:
gem 'mongoid', '8.1.11'
Have any feedback? Click on through to MongoDB's JIRA and open a new ticket to let us know what's on your mind 🧠.
Bug Fixes
MONGOID-5848 Revert MONGOID-5822 (PR)
MONGOID-5822 attempted to fix a regression where child callbacks that depended on parent state were no longer invoked if the child had not changed. However, the fix itself introduced an unacceptable performance regression.
This PR restores the earlier functionality, which will break apps that depend on callbacks being invoked on unmodified children.
For now, the correct way to implement that behavior is to explicitly iterate over the children in a parent callback, e.g.:
class Parent
include Mongoid::Document
has_many :children
after_save { children.each(&:parent_changed_callback) }
end
class Child
include Mongoid::Document
belongs_to :parent
def parent_changed_callback
# ...
end
endOther Bug Fixes
- MONGOID-5874 Fix persisting embedded children (PR)
- MONGOID-5863 last overrides skip (PR)
8.0.11
The MongoDB Ruby team is pleased to announce version 8.0.11 of the mongoid gem - a Ruby ODM for MongoDB. This is a new patch release in the 8.0.x series of Mongoid.
Install this release using RubyGems via the command line as follows:
gem install -v 8.0.11 mongoid
Or simply add it to your Gemfile:
gem 'mongoid', '8.0.11'
Have any feedback? Click on through to MongoDB's JIRA and open a new ticket to let us know what's on your mind 🧠.
Bug Fixes
MONGOID-5848 Revert MONGOID-5822 (PR)
MONGOID-5822 attempted to fix a regression where child callbacks that depended on parent state were no longer invoked if the child had not changed. However, the fix itself introduced an unacceptable performance regression.
This PR restores the earlier functionality, which will break apps that depend on callbacks being invoked on unmodified children.
For now, the correct way to implement that behavior is to explicitly iterate over the children in a parent callback, e.g.:
class Parent
include Mongoid::Document
has_many :children
after_save { children.each(&:parent_changed_callback) }
end
class Child
include Mongoid::Document
belongs_to :parent
def parent_changed_callback
# ...
end
endOther Bug Fixes
- MONGOID-5843 Ensure BSON::Decimal128 is considered to be numeric (PR)
- MONGOID-5874 Fix persisting embedded children (PR)
9.0.6
Version 9.0.6 of the Mongoid ODM for MongoDB is now available.
Release Highlights
This is a patch release that includes the following bug fix:
- MONGOID-5844: querying the number of elements in a
has_and_belongs_to_manyassociation could return the wrong count in specific situations.
Documentation
Documentation is available at MongoDB.com.
Installation
You may install this version via RubyGems, with:
gem install --version 9.0.6 mongoid
Full Changelog: v9.0.5...v9.0.6
8.1.10
Version 8.1.10 of the Mongoid ODM for MongoDB is now available.
Release Highlights
Mongoid 8.1.10 is a patch release that includes the following bug fix:
- MONGOID-5844: querying the number of elements in a
has_and_belongs_to_manyassociation could return the wrong count in specific situations.
Documentation
Documentation is available at MongoDB.com.
Installation
You may install this version via RubyGems, with:
gem install --version 8.1.10 mongoid
Full Changelog: v8.1.9...v8.1.10
8.0.10
Version 8.0.10 of the Mongoid ODM for MongoDB is now available.
Release Highlights
Mongoid 8.0.10 is a patch release that includes the following bug fix:
- MONGOID-5844: querying the number of elements in a
has_and_belongs_to_manyassociation could return the wrong count in specific situations.
Documentation
Documentation is available at MongoDB.com.
Installation
You may install this version via RubyGems, with:
gem install --version 8.0.10 mongoid
Full Changelog: v8.0.9...v8.0.10
9.0.5
Version 9.0.5 of the Mongoid ODM for MongoDB is now available.
Release Highlights
- MONGOID-5836 - Callbacks were being duplicated on deeply embedded children.
- MONGOID-5839 - When using single-collection inheritance, eager loading (with
#includes) was not producing the correct query when the root of the query was the document subclass. - MONGOID-5825 - The
Mongoid::Timestampsmodule would (in certain cases) attempt to timestamp deleted documents, which resulted in aFrozenErrorbeing raised. - MONGOID-5822 - Perform validations on embedded documents even if the embedded documents have not changed.
Documentation
Documentation is available at MongoDB.com.
Installation
You may install this version via RubyGems, with:
gem install --version 9.0.5 mongoid
Full Changelog: v9.0.4...v9.0.5
8.1.9
Version 8.1.9 of the Mongoid ODM for MongoDB is now available.
Release Highlights
- MONGOID-5836 - Callbacks were being duplicated on deeply embedded children.
- MONGOID-5839 - When using single-collection inheritance, eager loading (with
#includes) was not producing the correct query when the root of the query was the document subclass. - MONGOID-5825 - The
Mongoid::Timestampsmodule would (in certain cases) attempt to timestamp deleted documents, which resulted in aFrozenErrorbeing raised. - MONGOID-5822 - Perform validations on embedded documents even if the embedded documents have not changed.
Documentation
Documentation is available at MongoDB.com.
Installation
You may install this version via RubyGems, with:
gem install --version 8.1.9 mongoid
Full Changelog: v8.1.8...v8.1.9
8.0.9
Version 8.0.9 of the Mongoid ODM for MongoDB is now available.
Release Highlights
- MONGOID-5836 - Callbacks were being duplicated on deeply embedded children. A related issue (MONGOID-5542) was also backported to 8.0, exposing the
Mongoid.prevent_multiple_calls_of_embedded_callbackssetting to preserve backwards compatibility in most cases (defaults tofalse). - MONGOID-5757 - Child validations were being short-circuited, resulting in subsequent validation callbacks not being called after the first failing validation.
- MONGOID-5797 - Accessing the parent document from an embedded document was failing with an error when the original query applied a projection.
- MONGOID-5810 - When
Mongoid.legacy_attributesistrue, the#as_documentmethod was returning a hash that leaked internal model state. The hash is now deep-duplicated before being returned (which may have performance implications for large documents or complex hashes). - MONGOID-5839 - When using single-collection inheritance, eager loading (with
#includes) was not producing the correct query when the root of the query was the document subclass. - MONGOID-5825 - The
Mongoid::Timestampsmodule would (in certain cases) attempt to timestamp deleted documents, which resulted in aFrozenErrorbeing raised.
Documentation
Documentation is available at MongoDB.com.
Installation
You may install this version via RubyGems, with:
gem install --version 8.0.9 mongoid
Full Changelog: v8.0.8...v8.0.9
9.0.4
Version 9.0.4 of the Mongoid ODM for MongoDB is now available.
Release Highlights
There is one new feature in this release:
MONGOID-5829 adds
Mongoid.ignore_paths, which specifies an array of glob patterns. Any file matching any of these patterns will not be automatically loaded during autoloading (e.g.Mongoid.load_models). This fixes a problem encountered when non-model files (e.g. "concerns") are stored under the traditional model directories.
The following bug fixes are included in this release.
- MONGOID-5830 fixes a bug caused by an earlier optimization that forgot to account for the fact that the client name may be provided a as a
Proc. - MONGOID-5831 fixes an incompatibility with Rails 8.0.1 and later due to the inadvertent use of an internal Rails API.
- MONGOID-5737 fixes an error that occurred when comparing a
Mongoid::Documentinstance with an object that was not aMongoid::Documentinstance. - MONGOID-5780 ensures that calling
notmultiple times (e.g.Model.where.not.not) will toggle the criteria's negation state, rather than simply setting it totrue. - MONGOID-5816 prevents
attr_readonlyfrom leaking into sibling classes, which was making it difficult to specify that certain attributes are only read-only in certain parts of an inheritance tree.
Documentation
Documentation is available at MongoDB.com.
Installation
You may install this version via RubyGems, with:
gem install --version 9.0.4 mongoid
Full Changelog: v9.0.3...v9.0.4
8.1.8
Version 8.1.8 of the Mongoid ODM for MongoDB is now available.
Release Highlights
This is a patch release with the following bug fixes:
- MONGOID-5810 -- Internal model state was being leaked via
#as_document, allowing the state to be unexpectedly mutated when the returned document was mutated. - MONGOID-5737 -- Comparing a model with a non-model was causing an error.
- MONGOID-5780 -- Chaining multiple
notpredicates together was not toggling the negation state (e.g.Model.where.not.not.not) - MONGOID-5816 --
attr_readonlywas leaking into sibling classes, making it difficult to mark attributes read-only for only parts of an inheritance heirarchy.
Documentation
Documentation is available at MongoDB.com.
Installation
You may install this version via RubyGems, with:
gem install --version 8.1.8 mongoid
What's Changed
- MONGOID-5810 Don't leak internal state via
#as_documentby @jamis in #5899 - MONGOID-5737 Fix issue where <=> errors if there's a non-document (backport for 8.1) by @DarshanaVenkatesh in #5917
- MONGOID-5780 Fix chaining nots resulting in incorrect negation state (backport for 8.1) by @DarshanaVenkatesh in #5915
- MONGOID-5816: attr_readonly leaks into sibling classes (backport for 8.1) by @DarshanaVenkatesh in #5920
- MONGOID-5831 Remove usage of Rails private API (#5908) by @comandeo-mongo in #5926
- Bump version to 8.1.8 by @comandeo-mongo in #5928
- try
bundle exec gem pushon rake release by @jamis in #5929 - Invalidate bundler cache when cutting a new gem by @jamis in #5930
- Deployment tweaks by @jamis in #5931
Full Changelog: v8.1.7...v8.1.8