7.2.0.rc1
This is a preview of the next feature release of Mongoid.
Mongoid 7.2 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-4914 Unmask Enumerable#find on one to many associations
- MONGOID-4948 Add Mongoid to driver's wrapping libraries
- 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
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.