1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
data:
- {_id: 1, y: [{b: 3}, {b: 1}]}
- {_id: 2, y: [{b: 0}, {b: 1}]}
- {_id: 3, y: [{b: 5, c: [{d: 2}, {d: 1}] }]}
minServerVersion: '3.5.6'
tests:
-
description: "UpdateOne when no document matches arrayFilters"
operation:
name: "updateOne"
arguments:
filter: {}
update:
$set: {"y.$[i].b": 2}
arrayFilters:
- {i.b: 4}
outcome:
result:
matchedCount: 1
modifiedCount: 0
upsertedCount: 0
collection:
data:
- {_id: 1, y: [{b: 3}, {b: 1}]}
- {_id: 2, y: [{b: 0}, {b: 1}]}
- {_id: 3, y: [{b: 5, c: [{d: 2}, {d: 1}] }]}
-
description: "UpdateOne when one document matches arrayFilters"
operation:
name: "updateOne"
arguments:
filter: {}
update:
$set: {"y.$[i].b": 2}
arrayFilters:
- {i.b: 3}
outcome:
result:
matchedCount: 1
modifiedCount: 1
upsertedCount: 0
collection:
data:
- {_id: 1, y: [{b: 2}, {b: 1}]}
- {_id: 2, y: [{b: 0}, {b: 1}]}
- {_id: 3, y: [{b: 5, c: [{d: 2}, {d: 1}] }]}
-
description: "UpdateOne when multiple documents match arrayFilters"
operation:
name: "updateOne"
arguments:
filter: {}
update:
$set: {"y.$[i].b": 2}
arrayFilters:
- {i.b: 1}
outcome:
result:
matchedCount: 1
modifiedCount: 1
upsertedCount: 0
collection:
data:
- {_id: 1, y: [{b: 3}, {b: 2}]}
- {_id: 2, y: [{b: 0}, {b: 1}]}
- {_id: 3, y: [{b: 5, c: [{d: 2}, {d: 1}] }]}
-
description: "UpdateOne when no documents match multiple arrayFilters"
operation:
name: "updateOne"
arguments:
filter: {_id: 3}
update:
$set: {"y.$[i].c.$[j].d": 0}
arrayFilters:
- {i.b: 5}
- {j.d: 3}
outcome:
result:
matchedCount: 1
modifiedCount: 0
upsertedCount: 0
collection:
data:
- {_id: 1, y: [{b: 3}, {b: 1}]}
- {_id: 2, y: [{b: 0}, {b: 1}]}
- {_id: 3, y: [{b: 5, c: [{d: 2}, {d: 1}] }]}
-
description: "UpdateOne when one document matches multiple arrayFilters"
operation:
name: "updateOne"
arguments:
filter: {_id: 3}
update:
$set: {"y.$[i].c.$[j].d": 0}
arrayFilters:
- {i.b: 5}
- {j.d: 1}
outcome:
result:
matchedCount: 1
modifiedCount: 1
upsertedCount: 0
collection:
data:
- {_id: 1, y: [{b: 3}, {b: 1}]}
- {_id: 2, y: [{b: 0}, {b: 1}]}
- {_id: 3, y: [{b: 5, c: [{d: 2}, {d: 0}] }]}
|