summaryrefslogtreecommitdiff
path: root/jstests/core/write/update/update_arraymatch2.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/write/update/update_arraymatch2.js')
-rw-r--r--jstests/core/write/update/update_arraymatch2.js18
1 files changed, 18 insertions, 0 deletions
diff --git a/jstests/core/write/update/update_arraymatch2.js b/jstests/core/write/update/update_arraymatch2.js
new file mode 100644
index 00000000000..7610de7c962
--- /dev/null
+++ b/jstests/core/write/update/update_arraymatch2.js
@@ -0,0 +1,18 @@
+// @tags: [requires_multi_updates, requires_non_retryable_writes]
+
+t = db.update_arraymatch2;
+t.drop();
+
+t.insert({});
+t.insert({x: [1, 2, 3]});
+t.insert({x: 99});
+t.update({x: 2}, {$inc: {"x.$": 1}}, false, true);
+assert(t.findOne({x: 1}).x[1] == 3, "A1");
+
+t.insert({x: {y: [8, 7, 6]}});
+t.update({'x.y': 7}, {$inc: {"x.y.$": 1}}, false, true);
+assert.eq(8, t.findOne({"x.y": 8}).x.y[1], "B1");
+
+t.insert({x: [90, 91, 92], y: ['a', 'b', 'c']});
+t.update({x: 92}, {$set: {'y.$': 'z'}}, false, true);
+assert.eq('z', t.findOne({x: 92}).y[2], "B2");