bson/testdata/crud/v1/write/findOneAndUpdate.yml
2025-03-17 20:58:26 +01:00

163 lines
5.0 KiB
YAML

data:
- {_id: 1, x: 11}
- {_id: 2, x: 22}
- {_id: 3, x: 33}
tests:
-
description: "FindOneAndUpdate when many documents match returning the document before modification"
operation:
name: findOneAndUpdate
arguments:
filter:
_id: {$gt: 1}
update:
$inc: {x: 1}
projection: {x: 1, _id: 0}
sort: {x: 1}
outcome:
result: {x: 22}
collection:
data:
- {_id: 1, x: 11}
- {_id: 2, x: 23}
- {_id: 3, x: 33}
-
description: "FindOneAndUpdate when many documents match returning the document after modification"
operation:
name: findOneAndUpdate
arguments:
filter:
_id: {$gt: 1}
update:
$inc: {x: 1}
projection: {x: 1, _id: 0}
returnDocument: After
sort: {x: 1}
outcome:
result: {x: 23}
collection:
data:
- {_id: 1, x: 11}
- {_id: 2, x: 23}
- {_id: 3, x: 33}
-
description: "FindOneAndUpdate when one document matches returning the document before modification"
operation:
name: findOneAndUpdate
arguments:
filter: {_id: 2}
update:
$inc: {x: 1}
projection: {x: 1, _id: 0}
sort: {x: 1}
outcome:
result: {x: 22}
collection:
data:
- {_id: 1, x: 11}
- {_id: 2, x: 23}
- {_id: 3, x: 33}
-
description: "FindOneAndUpdate when one document matches returning the document after modification"
operation:
name: findOneAndUpdate
arguments:
filter: {_id: 2}
update:
$inc: {x: 1}
projection: {x: 1, _id: 0}
returnDocument: After
sort: {x: 1}
outcome:
result: {x: 23}
collection:
data:
- {_id: 1, x: 11}
- {_id: 2, x: 23}
- {_id: 3, x: 33}
-
description: "FindOneAndUpdate when no documents match returning the document before modification"
operation:
name: findOneAndUpdate
arguments:
filter: {_id: 4}
update:
$inc: {x: 1}
projection: {x: 1, _id: 0}
sort: {x: 1}
outcome:
result: null
collection:
data:
- {_id: 1, x: 11}
- {_id: 2, x: 22}
- {_id: 3, x: 33}
-
description: "FindOneAndUpdate when no documents match with upsert returning the document before modification"
operation:
name: findOneAndUpdate
arguments:
filter: {_id: 4}
update:
$inc: {x: 1}
projection: {x: 1, _id: 0}
# Omit the sort option as it has no effect when no documents
# match and would only cause an inconsistent return value on
# pre-3.0 servers when combined with returnDocument "before"
# (see: SERVER-17650).
upsert: true
outcome:
result: null
collection:
data:
- {_id: 1, x: 11}
- {_id: 2, x: 22}
- {_id: 3, x: 33}
- {_id: 4, x: 1}
-
description: "FindOneAndUpdate when no documents match returning the document after modification"
operation:
name: findOneAndUpdate
arguments:
filter: {_id: 4}
update:
$inc: {x: 1}
projection: {x: 1, _id: 0}
returnDocument: After
sort: {x: 1}
outcome:
result: null
collection:
data:
- {_id: 1, x: 11}
- {_id: 2, x: 22}
- {_id: 3, x: 33}
-
description: "FindOneAndUpdate when no documents match with upsert returning the document after modification"
operation:
name: findOneAndUpdate
arguments:
filter: {_id: 4}
update:
$inc: {x: 1}
projection: {x: 1, _id: 0}
returnDocument: After
sort: {x: 1}
upsert: true
outcome:
result: {x: 1}
collection:
data:
- {_id: 1, x: 11}
- {_id: 2, x: 22}
- {_id: 3, x: 33}
- {_id: 4, x: 1}