Skip to content

Commit 29e33d3

Browse files
npentreljeff-allen-mongo
authored andcommitted
DOCS-13822 permit empty update modifiers
1 parent bbf0bc3 commit 29e33d3

18 files changed

+175
-1
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
ref: _update-operation-empty-operand-expressions
2+
content: |
3+
Starting in MongoDB 5.0, :binary:`~bin.mongod` no longer raises an
4+
error when you use an update operator like :update:`${{operator}}`
5+
with an empty operand expression ( ``{ }`` ). An empty update results
6+
in no changes and no :term:`oplog` entry is created (meaning that the
7+
operation is a no-op).
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
ref: update-operation-empty-operand-expressions-add-to-set
2+
source:
3+
file: extracts-update-operations-base.yaml
4+
ref: _update-operation-empty-operand-expressions
5+
replacement:
6+
operator: addToSet
7+
---
8+
ref: update-operation-empty-operand-expressions-bit
9+
source:
10+
file: extracts-update-operations-base.yaml
11+
ref: _update-operation-empty-operand-expressions
12+
replacement:
13+
operator: bit
14+
---
15+
ref: update-operation-empty-operand-expressions-current-date
16+
source:
17+
file: extracts-update-operations-base.yaml
18+
ref: _update-operation-empty-operand-expressions
19+
replacement:
20+
operator: currentDate
21+
---
22+
ref: update-operation-empty-operand-expressions-inc
23+
source:
24+
file: extracts-update-operations-base.yaml
25+
ref: _update-operation-empty-operand-expressions
26+
replacement:
27+
operator: inc
28+
---
29+
ref: update-operation-empty-operand-expressions-max
30+
source:
31+
file: extracts-update-operations-base.yaml
32+
ref: _update-operation-empty-operand-expressions
33+
replacement:
34+
operator: max
35+
---
36+
ref: update-operation-empty-operand-expressions-min
37+
source:
38+
file: extracts-update-operations-base.yaml
39+
ref: _update-operation-empty-operand-expressions
40+
replacement:
41+
operator: min
42+
---
43+
ref: update-operation-empty-operand-expressions-mul
44+
source:
45+
file: extracts-update-operations-base.yaml
46+
ref: _update-operation-empty-operand-expressions
47+
replacement:
48+
operator: mul
49+
---
50+
ref: update-operation-empty-operand-expressions-pop
51+
source:
52+
file: extracts-update-operations-base.yaml
53+
ref: _update-operation-empty-operand-expressions
54+
replacement:
55+
operator: pop
56+
---
57+
ref: update-operation-empty-operand-expressions-pull
58+
source:
59+
file: extracts-update-operations-base.yaml
60+
ref: _update-operation-empty-operand-expressions
61+
replacement:
62+
operator: pull
63+
---
64+
ref: update-operation-empty-operand-expressions-pull-all
65+
source:
66+
file: extracts-update-operations-base.yaml
67+
ref: _update-operation-empty-operand-expressions
68+
replacement:
69+
operator: pullAll
70+
---
71+
ref: update-operation-empty-operand-expressions-push
72+
source:
73+
file: extracts-update-operations-base.yaml
74+
ref: _update-operation-empty-operand-expressions
75+
replacement:
76+
operator: push
77+
---
78+
ref: update-operation-empty-operand-expressions-rename
79+
source:
80+
file: extracts-update-operations-base.yaml
81+
ref: _update-operation-empty-operand-expressions
82+
replacement:
83+
operator: rename
84+
---
85+
ref: update-operation-empty-operand-expressions-set
86+
source:
87+
file: extracts-update-operations-base.yaml
88+
ref: _update-operation-empty-operand-expressions
89+
replacement:
90+
operator: set
91+
---
92+
ref: update-operation-empty-operand-expressions-set-on-insert
93+
source:
94+
file: extracts-update-operations-base.yaml
95+
ref: _update-operation-empty-operand-expressions
96+
replacement:
97+
operator: setOnInsert
98+
---
99+
ref: update-operation-empty-operand-expressions-unset
100+
source:
101+
file: extracts-update-operations-base.yaml
102+
ref: _update-operation-empty-operand-expressions
103+
replacement:
104+
operator: unset
105+
...

source/reference/operator/update/addToSet.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ Behavior
3535
:update:`$addToSet` does not guarantee a particular ordering of
3636
elements in the modified set.
3737

38+
.. include:: /includes/extracts/update-operation-empty-operand-expressions-add-to-set.rst
39+
3840
Missing Field
3941
~~~~~~~~~~~~~
4042

source/reference/operator/update/bit.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ Definition
3737
constructor to specify integers. See :ref:`shell-type-int` or
3838
:ref:`shell-type-long` for more information.
3939

40+
Behavior
41+
--------
42+
43+
.. include:: /includes/extracts/update-operation-empty-operand-expressions-bit.rst
44+
4045
Examples
4146
--------
4247

source/reference/operator/update/currentDate.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ Behavior
4444
If the field does not exist, :update:`$currentDate` adds the field to a
4545
document.
4646

47+
.. include:: /includes/extracts/update-operation-empty-operand-expressions-current-date.rst
48+
4749
Example
4850
-------
4951

source/reference/operator/update/inc.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ generate an error.
3737

3838
:update:`$inc` is an atomic operation within a single document.
3939

40+
.. include:: /includes/extracts/update-operation-empty-operand-expressions-inc.rst
41+
4042
Example
4143
-------
4244

source/reference/operator/update/max.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ Behavior
3535
If the field does not exists, the :update:`$max` operator sets the
3636
field to the specified value.
3737

38+
.. include:: /includes/extracts/update-operation-empty-operand-expressions-max.rst
39+
3840
Examples
3941
--------
4042

source/reference/operator/update/min.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ For comparisons between values of different types, such as a number and
3737
a null, :update:`$min` uses the :ref:`BSON comparison order
3838
<faq-dev-compare-order-for-BSON-types>`.
3939

40+
.. include:: /includes/extracts/update-operation-empty-operand-expressions-min.rst
41+
4042
Examples
4143
--------
4244

source/reference/operator/update/mul.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ Definition
2929
Behavior
3030
--------
3131

32+
.. include:: /includes/extracts/update-operation-empty-operand-expressions-mul.rst
33+
3234
Missing Field
3335
~~~~~~~~~~~~~
3436

source/reference/operator/update/pop.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ The :update:`$pop` operation fails if the ``<field>`` is not an array.
3636
If the :update:`$pop` operator removes the last item in the
3737
``<field>``, the ``<field>`` will then hold an empty array.
3838

39+
.. include:: /includes/extracts/update-operation-empty-operand-expressions-pop.rst
40+
3941
Examples
4042
--------
4143

0 commit comments

Comments
 (0)