@@ -40,122 +40,49 @@ New Aggregation Operators
4040General Aggregation Improvements
4141~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4242
43- Multiple Input Expressions for ``$ifNull`` Expression
44- `````````````````````````````````````````````````````
43+ ``$expr`` Operator: Comparison Operators Use Indexes
44+ ````````````````````````````````````````````````````
45+
46+ Starting in MongoDB 5.0, the :expression:`$eq`, :expression:`$lt`,
47+ :expression:`$lte`, :expression:`$gt`, and :expression:`$gte` operators
48+ placed in an :query:`$expr` operator can use indexes to improve performance.
49+
50+ ``$ifNull`` Expression Accepts Multiple Input Expressions
51+ `````````````````````````````````````````````````````````
4552
4653Starting in MongoDB 5.0, you can specify multiple input expressions for
4754the :expression:`$ifNull` expression before returning a replacement
4855expression.
4956
50- Comparison Operators and Indexes with ``$expr`` Operator
51- ````````````````````````````````````````````````````````
52-
53- Starting in MongoDB 5.0, the :expression:`$eq`, :expression:`$lt`,
54- :expression:`$lte`, :expression:`$gt`, and :expression:`$gte` operators
55- placed in an :query:`$expr` operator can use an index.
56-
57- Aggregate ``let`` Option
58- ````````````````````````
57+ ``let`` Option for Aggregation
58+ ``````````````````````````````
5959
6060Starting in MongoDB 5.0, the :dbcommand:`aggregate` command and
6161:method:`db.collection.aggregate()` helper method have a ``let`` option
6262to specify a list of variables that can be used elsewhere in the
6363aggregation pipeline. This allows you to improve command readability by
6464separating the variables from the query text.
6565
66- Concise Correlated Subqueries in Aggregation Pipeline ``$lookup`` Stage
67- ```````````````````````````````````````````````````````````````````````
66+ ``$lookup`` Stage: Concise Correlated Subqueries
67+ ````````````````````````````````````````````````
6868
6969Starting in MongoDB 5.0, an aggregation pipeline :pipeline:`$lookup`
7070stage supports :ref:`concise correlated subqueries
7171<lookup-syntax-concise-correlated-subquery>` that improve joins between
7272collections.
7373
74- .. _5.0-rel-notes-repl-sets:
75-
76- Replica Sets
77- ------------
78-
79- Limit Removed for ``members[n]._id`` Values
80- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81-
82- Starting in MongoDB 5.0, the :rsconf:`members[n]._id` field may be any
83- integer value greater than or equal to ``0``. Previously, this value was
84- limited to an integer between ``0`` and ``255`` inclusive.
85-
86- .. _5.0-rel-notes-sharded-clusters:
87-
88- Sharded Clusters
89- ----------------
90-
91- .. _5.0-rel-notes-projection:
92-
93- Projection
94- ----------
95-
96- .. _5.0-rel-notes-transactions:
97-
98- Transactions
99- ------------
100-
10174.. _5.0-rel-notes-change-streams:
10275
10376Change Streams
10477--------------
10578
79+ Change Events Output
80+ ~~~~~~~~~~~~~~~~~~~~
81+
10682Starting in MongoDB 5.0, :ref:`change-events`
10783contain the field ``updateDescription.truncatedArrays`` to record array
10884truncations.
10985
110- ``coordinateCommitReturnImmediatelyAfterPersistingDecision`` Parameter
111- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
112-
113- .. include:: /includes/return-commit-decision-parameter.rst
114-
115- .. _5.0-rel-notes-security:
116-
117- Security Improvements
118- ---------------------
119-
120- .. _5.0-rel-notes-logging:
121-
122- Structured Logging
123- ------------------
124-
125- .. _5.0-rel-notes-platforms:
126-
127- Platform Support
128- ----------------
129-
130- Removed Platforms
131- ~~~~~~~~~~~~~~~~~
132-
133- MongoDB 5.0 removes support for the following platforms:
134-
135- - **RHEL / CentOS / Oracle 7** on the
136- :ref:`PPC64LE <prod-notes-supported-platforms-PPC64LE>` and
137- :ref:`s390x <prod-notes-supported-platforms-s390x>` architectures
138-
139- - **SLES 12** on the :ref:`s390x <prod-notes-supported-platforms-s390x>`
140- architecture
141-
142- - **Ubuntu 18.04** on the
143- :ref:`PPC64LE <prod-notes-supported-platforms-PPC64LE>` and
144- :ref:`s390x <prod-notes-supported-platforms-s390x>` architectures
145-
146- See :ref:`prod-notes-supported-platforms` for the full list of platforms
147- and architectures supported in MongoDB 5.0.
148-
149- .. _5.0-rel-notes-shell:
150-
151- Mongo Shell
152- -----------
153-
154- .. _5.0-rel-notes-drivers:
155-
156- Drivers
157- -------
158-
15986.. _5.0-rel-notes-indexes:
16087
16188Indexes
@@ -175,38 +102,94 @@ index build, the index build progress is now
175102:ref:`saved to disk<index-operations-build-failure>`. When the server
176103restarts, index creation resumes from the saved position.
177104
105+ ``reIndex`` Behavior Change
106+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
107+
108+ Starting in MongoDB 5.0, the :dbcommand:`reIndex` command and the
109+ :method:`db.collection.reIndex()` shell method may only be run on
110+ :term:`standalone` instances.
111+
112+ .. _5.0-rel-notes-projection:
113+
114+ Projection
115+ ----------
116+
178117.. _5.0-rel-notes-removed-commands:
179118
180119Removed Commands
181120----------------
182121
183- .. _5.0-new-parameters :
122+ .. _5.0-rel-notes-repl-sets :
184123
185- New Parameters
186- --------------
124+ Replica Sets
125+ ------------
187126
188- Starting in MongoDB 5.0, you can use the
189- :parameter:`minSnapshotHistoryWindowInSeconds` parameter to control how
190- long WiredTiger keeps the snapshot history.
127+ Limit Removed for ``members[n]._id`` Values
128+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
129+
130+ Starting in MongoDB 5.0, the :rsconf:`members[n]._id` field may be any
131+ integer value greater than or equal to ``0``. Previously, this value was
132+ limited to an integer between ``0`` and ``255`` inclusive.
133+
134+ .. _5.0-rel-notes-sharded-clusters:
135+
136+ Sharded Clusters
137+ ----------------
138+
139+ ``currentOp`` Reports Ongoing Resharding Operations
140+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
141+
142+ Starting in MongoDB 5.0, the :pipeline:`$currentOp` aggregation stage
143+ (and the :dbcommand:`currentOp` command and :method:`db.currentOp()`
144+ shell method) include additional information about the status of ongoing
145+ resharding operations for the resharding coordinator and the
146+ donor and recipient shards.
147+
148+ .. _5.0-rel-notes-security:
149+
150+ Security
151+ --------
191152
192153MongoDB 5.0 introduces the :parameter:`opensslCipherSuiteConfig`
193154parameter to enable configuration of the supported cipher suites OpenSSL
194155should permit when using TLS 1.3 encryption.
195156
196- .. _5.0-rel-notes-networking:
197-
198- Networking
199- ----------
200-
201157.. _5.0-snapshot-reads:
202158
203- Snapshot Reads
204- --------------
159+ Snapshots
160+ ---------
161+
162+ Extended Support for Read Concern ``"snapshot"``
163+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
205164
206165Starting in MongoDB 5.0, read concern :readconcern:`"snapshot"` is
207166supported for some read operations outside of multi-document
208167transactions on primaries and secondaries.
209168
169+ ``minSnapshotHistoryWindowInSeconds`` Server Parameter
170+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
171+
172+ Starting in MongoDB 5.0, you can use the
173+ :parameter:`minSnapshotHistoryWindowInSeconds` parameter to control how
174+ long WiredTiger keeps the snapshot history.
175+
176+ .. _5.0-rel-notes-logging:
177+
178+ Structured Logging
179+ ------------------
180+
181+ .. _5.0-rel-notes-platforms:
182+
183+ .. _5.0-rel-notes-transactions:
184+
185+ Transactions
186+ ------------
187+
188+ ``coordinateCommitReturnImmediatelyAfterPersistingDecision`` Parameter
189+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
190+
191+ .. include:: /includes/return-commit-decision-parameter.rst
192+
210193.. _5.0-rel-notes-general:
211194
212195General Improvements
@@ -232,13 +215,6 @@ Lock-Free Read Operations
232215
233216.. include:: /includes/lock-free-commands.rst
234217
235- ``reIndex`` Behavior Change
236- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
237-
238- Starting in MongoDB 5.0, the :dbcommand:`reIndex` command and the
239- :method:`db.collection.reIndex()` shell method may only be run on
240- :term:`standalone` instances.
241-
242218Schema Validation Failures Explained
243219~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
244220
@@ -301,12 +277,45 @@ Log Changes to Database Profiler Settings
301277
302278.. include:: /includes/log-changes-to-database-profiler.rst
303279
280+ Define Variables Using the ``let`` Option
281+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
282+
283+ Starting in MongoDB 5.0, the following commands have a ``let`` option to
284+ define a list of variables. This allows you to improve command
285+ readability by separating the variables from the query text.
286+
287+ - :dbcommand:`find` command
288+
289+ - :dbcommand:`findAndModify` command and corresponding
290+ :method:`db.collection.findAndModify()` shell helper
291+
292+ - :dbcommand:`update` command and corresponding
293+ :method:`db.collection.update()` shell helper
294+
295+ - :dbcommand:`delete` command
296+
297+ - :method:`db.collection.remove()` shell helper
298+
299+ The :dbcommand:`update` command also has a ``c`` field to define a list
300+ of variables.
301+
302+ Additional ``dbStats`` Free Space Statistics
303+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
304+
305+ Starting in MongoDB 5.0, the :dbcommand:`dbStats` command outputs these
306+ additional statistics:
307+
308+ - Free space allocated to collections (:data:`~dbStats.freeStorageSize`)
309+
310+ - Free space allocated to indexes
311+ (:data:`~dbStats.indexFreeStorageSize`)
312+
313+ - Total free space allocated to collections and indexes
314+ (:data:`~dbStats.totalFreeStorageSize`)
315+
304316``serverStatus`` Output Change
305317~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
306318
307- New Fields
308- ``````````
309-
310319:dbcommand:`serverStatus` includes the following new fields in its
311320output:
312321
@@ -364,50 +373,46 @@ output:
364373 | :serverstatus:`metrics.cursor.totalOpened`, which reports
365374 the total number of cursors that have been opened
366375
367- ``currentOp`` Output Change
368- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
369-
370- Starting in MongoDB 5.0, the :pipeline:`$currentOp` aggregation stage
371- (and the :dbcommand:`currentOp` command and :method:`db.currentOp()`
372- shell method) include additional information about the status of ongoing
373- resharding operations for the resharding coordinator and the
374- donor and recipient shards.
376+ .. _5.0-rel-notes-shell:
375377
376- Additional ``dbStats`` Free Space Statistics
377- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
378+ Mongo Shell
379+ -----------
378380
379- Starting in MongoDB 5.0, the :dbcommand:`dbStats` command outputs these
380- additional statistics:
381+ .. _5.0-rel-notes-drivers:
381382
382- - Free space allocated to collections (:data:`~dbStats.freeStorageSize`)
383+ Drivers
384+ -------
383385
384- - Free space allocated to indexes
385- (:data:`~dbStats.indexFreeStorageSize`)
386+ .. _5.0-rel-notes-platforms:
386387
387- - Total free space allocated to collections and indexes
388- (:data:`~dbStats.totalFreeStorageSize`)
388+ Platform Support
389+ ----------------
389390
390- Define Variables Using the ``let`` Option
391- `````````````````````````````````````````
391+ Removed Platforms
392+ ~~~~~~~~~~~~~~~~~
392393
393- Starting in MongoDB 5.0, the following commands have a ``let`` option to
394- define a list of variables. This allows you to improve command
395- readability by separating the variables from the query text.
394+ MongoDB 5.0 removes support for the following platforms:
396395
397- - :dbcommand:`find` command
396+ - **RHEL / CentOS / Oracle 7** on the
397+ :ref:`PPC64LE <prod-notes-supported-platforms-PPC64LE>` and
398+ :ref:`s390x <prod-notes-supported-platforms-s390x>` architectures
398399
399- - :dbcommand:`findAndModify` command and corresponding
400- :method:`db.collection.findAndModify()` shell helper
400+ - **SLES 12** on the :ref:`s390x <prod-notes-supported-platforms-s390x>`
401+ architecture
401402
402- - :dbcommand:`update` command and corresponding
403- :method:`db.collection.update()` shell helper
403+ - **Ubuntu 18.04** on the
404+ :ref:`PPC64LE <prod-notes-supported-platforms-PPC64LE>` and
405+ :ref:`s390x <prod-notes-supported-platforms-s390x>` architectures
404406
405- - :dbcommand:`delete` command
407+ See :ref:`prod-notes-supported-platforms` for the full list of platforms
408+ and architectures supported in MongoDB 5.0.
406409
407- - :method:`db.collection.remove()` shell helper
410+ Changes Affecting Compatibility
411+ -------------------------------
408412
409- The :dbcommand:`update` command also has a ``c`` field to define a list
410- of variables.
413+ Some changes can affect compatibility and may require user actions. For
414+ a detailed list of compatibility changes, see
415+ :doc:`/release-notes/5.0-compatibility`.
411416
412417.. _5.0-upgrade:
413418
0 commit comments