Important
MongoDB 8.3 Release Candidates
MongoDB 8.3 binaries are currently available only as release candidates. Release candidates can be used for early testing of new features, but are not suitable for production deployments.
This version of the manual is for an upcoming release and is currently a work in progress.
This page describes changes introduced in MongoDB 8.3 that can affect compatibility with older versions of MongoDB.
Indexes
Stricter Wildcard Index Validation
Starting in MongoDB 8.3 (and 8.2.4, 8.0.18, 7.0.29), stricter validation
rules apply to wildcardProjection specifications in compound
wildcard indexes. Existing indexes that do not meet the new validation
requirements continue to function, but you cannot create new indexes
that don't meet these requirements.
For complete details on the validation rules, see Wildcard Index Restrictions.
General Changes
Accessing Array Element Indexes in $map, $filter, and $reduce
MongoDB 8.3 improves access to array element indexes in
$map, $filter, and $reduce
aggregation expressions. You can use the new arrayIndexAs field to
set a variable to store the index of an array element. You can also use
the new $$IDX aggregation system variable to access
the index of the current array element if you omit arrayIndexAs.
If you create a view or collection validation rule that use the new array element index feature, you must update or remove the view or rule before downgrading from MongoDB 8.3 to an earlier version.
2dsphereIndexVersion
Starting in MongoDB 8.3, 2dsphereIndexVersion
is set to version 4 by default.
If you need to downgrade the FCV to anything below 8.3, you
must first drop the 2dsphere version 4 indexes.
Backward-Incompatible Features
The following sections provide information for removing backward-incompatible features from your deployment. If you are downgrading from MongoDB 8.3 to an earlier version, review the following sections to ensure that your deployment runs successfully after downgrading.
Expressions in Views
If you created views that use expressions introduced in MongoDB 8.3, those views may stop working after you downgrade to a version that does not support those expressions.
If you need to downgrade from 8.3, you must first update or drop any views that depend on expressions not supported in the target version.
Parameters and Variables in Views and Validators
If you created views or collection validators that use parameters or variables introduced in MongoDB 8.3, those objects may fail validation or evaluation after you downgrade.
If you need to downgrade from 8.3, you must first update or remove any views or validators that reference parameters or variables not supported in the target version.
Validated Collections
MongoDB 8.3 can mark collections as validated using new validation semantics that are not compatible with versions earlier than 8.3. If you attempt to downgrade while validated collections exist, the downgrade fails.
If you need to downgrade from 8.3, you must first change validated collections to a validation level supported in the target version or drop those collections. $facet Memory-Limit Error Code ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Starting in MongoDB 8.3, when a $facet stage constructs a
document larger than the 100 megabyte limit, MongoDB returns the
ExceededMemoryLimit error.
In earlier versions, stages that exceed the memory limit return the
error code 4031700. If you have applications, drivers, or tools
that explicitly check for 4031700, you can adjust your code to
recognize ExceededMemoryLimit instead.
Subnormal Numbers in $convert Pipelines
Starting in MongoDB 8.3, the server is able to parse the full range of all representable double precision floating point numbers. This includes subnormal numbers where the most significant digit has leading zeroes and the exponent has the least possible value. In earlier versions of MongoDB, the server returns an error when you try to parse these numbers.
For details, see Subnormal Numbers.
Balancer Window Settings
When you downgrade from MongoDB 8.3 to an earlier version, the
activeBalancerWindowDOW configuration is not available. On
downgrade, the balancer defaults to using the activeWindow
setting.
No manual downgrade steps are required, but any custom day-of-week (DOW) configurations made in 8.3 do not apply after downgrading.