Releases: mongodb/mongoid
9.0.7
The MongoDB Ruby team is pleased to announce version 9.0.7 of the mongoid
gem - a Ruby ODM for MongoDB. This is a new patch release in the 9.0.x series of Mongoid.
Install this release using RubyGems via the command line as follows:
gem install -v 9.0.7 mongoid
Or simply add it to your Gemfile
:
gem 'mongoid', '9.0.7'
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 example, when a child callback depends simply on the parent having changed state).
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
end
Other Bug Fixes
- MONGOID-5843 Ensure BSON::Decimal128 is considered to be numeric (PR)
- MONGOID-5874 Fix persisting embedded children (PR)
- MONGOID-5863 last overrides skip (PR)
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
end
Other 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
end
Other 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_many
association 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_many
association 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_many
association 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::Timestamps
module would (in certain cases) attempt to timestamp deleted documents, which resulted in aFrozenError
being 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::Timestamps
module would (in certain cases) attempt to timestamp deleted documents, which resulted in aFrozenError
being 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_callbacks
setting 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_attributes
istrue
, the#as_document
method 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::Timestamps
module would (in certain cases) attempt to timestamp deleted documents, which resulted in aFrozenError
being 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::Document
instance with an object that was not aMongoid::Document
instance. - MONGOID-5780 ensures that calling
not
multiple times (e.g.Model.where.not.not
) will toggle the criteria's negation state, rather than simply setting it totrue
. - MONGOID-5816 prevents
attr_readonly
from 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