Releases: mongodb/mongoid
7.1.9
7.3.0
This feature release of Mongoid adds the following new functionality:
- MONGOID-5036 Delegate to driver's query cache middleware when available
- MONGOID-4812 Allow id to be a regular field in models (not an alias of _id)
- MONGOID-4906 Add missing general-purpose operators to embedded matchers
- MONGOID-4757 Mongoid now warns about unknown options given at top level in YAML configuration
The following significant changes were made:
- MONGOID-4753 Make global Boolean definition opt-in
- MONGOID-3468 Always touch parents of embedded documents when embedded documents are touched
- MONGOID-5023 Expand all conditions in a single argument together in
where
path - MONGOID-4706 Remove the internal Targets module
- MONGOID-5060 #delete no longer causes dependent associations to be destroyed
- MONGOID-5073
Mongoid.purge!
andMongoid.truncate
respect global persistence context overrides
The following bugs were fixed:
- MONGOID-4982 Cannot update a field on embedded association member, add another member and add a nested association to the first member in the same save call
- MONGOID-5020 Condition lifting breaks with symbol operators on Ruby <= 2.6
- MONGOID-5032 Hash attribute access/read_attribute fails on embedded field when parent loaded with only
Please see the upgrading documentation for more detailed descriptions of the changes.
7.2.3
This patch release in the 7.2 series adds an upgrading note for the following change that was made in 7.2.0 release:
7.1.8
This patch release in the 7.1 series fixes the following issues:
7.0.13
This patch release in the 7.0 series fixes the following issues:
- MONGOID-5042 rails g mongoid:config is not working on Rails 6.1
- MONGOID-5059
set
nilifies attributes excluded viaonly
- MONGOID-4672 Default order in
embeds_many
association causes association to use/return stale data - MONGOID-5076 reload fails to find document when the document's sharded field has been updated
7.2.2
This patch release in the 7.2 series repairs a Rails 6.1 incompatibility in the Mongoid config generator and fixes several user-reported problems. The following issues have been resolved:
- MONGOID-5042 rails g mongoid:config is not working on Rails 6.1
- MONGOID-5063 Support numeric path components as hash keys when embedded matching
- MONGOID-5069 Support numeric path components resolving to hash keys under arrays when embedded matching
- MONGOID-5059
set
nilifies attributes excluded viaonly
- MONGOID-5068 ElemMatch matcher operates on pre-stringified keys in condition verification path against impossible values
- MONGOID-5076 reload fails to find document when the document's sharded field has been updated
7.2.1
This patch release in the 7.2 series adds compatibility with Rails 6.1 and fixes the following issues:
7.1.7
This patch release in the 7.1 series adds compatibility with Rails 6.1 and fixes the following issues:
7.0.12
This patch release in the 7.0 series adds compatibility with Rails 6.1.
7.2.0
This feature release of Mongoid includes the following principal changes:
- Embedded matchers have been largely rewritten. In several cases the behavior of Mongoid matchers was changed to match MongoDB server. Please see the upgrading guide section for detailed changes.
Model#count
is now implemented using the aggregation pipeline$count
stage.Model#estimated_count
method was added to provide the estimated count thatModel#count
used to provide. This change should be transparent to most applications but may increase runtime for applications that call#count
, especially with complex conditions (with the benefit being of#count
producing accurate results). See this upgrading guide section for further details.- Discriminator key and value can now be overridden for models using inheritance.
- Shard key is now used when reloading models for improved performance in sharded deployments.
- The query cache was moved to the driver. Mongoid 7.2 will transparently use the query cache implementation in driver versions 2.14 and higher, with a fallback on the legacy query cache implementation that will continue to be provided for when Mongoid is used with older driver versions. The driver's query cache implementation provides new features such as caching the aggregation pipelines and more fine grained cache expiration. Both the driver's query cache implementation and Mongoid's legacy query cache implementation also contain fixes to known issues like inability to cache results when they are returned in multiple batches from the server.
The following additional improvements were made:
- MONGOID-4913 StringifiedSymbol field to expose strings as symbols in Ruby
- MONGOID-4914 Unmask Enumerable#find on one to many associations
- MONGOID-4522 Make #any? not retrieve entire result set, like #exists?
- MONGOID-4703 Add geo_spatial as an alias for geo_spacial
The following bugs have been fixed:
- MONGOID-4977 Use new send_initial_query signature in Mongoid QueryCache
- MONGOID-4890 Destroying model instances with dependent associations in transactions raises OperationFailure due to use of (deprecated) count
- MONGOID-4947 #any? method with block given does not behave as per Enumerable
- MONGOID-4980 Atomic push incorrectly determines whether there is a conflict
- MONGOID-5013 Re-associating identical object destroys itself for dependent: :destroy
- MONGOID-5002 parent.child = Child.new raises TypeError when there's no inverse relation for belongs_to with has_one parent
Support for Ruby MRI versions 2.3 and 2.4 has been deprecated as of this release. See this ticket for more details. We intend to stop supporting these Ruby versions as of Mongoid 7.3.
Please read the upgrading guide for the detailed list of changes, major new features and upgrading guidance.