diff options
Diffstat (limited to 'jstests/core/write/update/update3.js')
-rw-r--r-- | jstests/core/write/update/update3.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/jstests/core/write/update/update3.js b/jstests/core/write/update/update3.js new file mode 100644 index 00000000000..5a61b8bcfc9 --- /dev/null +++ b/jstests/core/write/update/update3.js @@ -0,0 +1,33 @@ +// Cannot implicitly shard accessed collections because of following errmsg: A single +// update/delete on a sharded collection must contain an exact match on _id or contain the shard +// key. +// @tags: [assumes_unsharded_collection] + +// Update with mods corner cases. + +f = db.jstests_update3; + +f.drop(); +f.save({a: 1}); +f.update({}, {$inc: {a: 1}}); +assert.eq(2, f.findOne().a, "A"); + +f.drop(); +f.save({a: {b: 1}}); +f.update({}, {$inc: {"a.b": 1}}); +assert.eq(2, f.findOne().a.b, "B"); + +f.drop(); +f.save({a: {b: 1}}); +f.update({}, {$set: {"a.b": 5}}); +assert.eq(5, f.findOne().a.b, "C"); + +f.drop(); +f.save({'_id': 0}); +f.update({}, {$set: {'_id': 5}}); +assert.eq(0, f.findOne()._id, "D"); + +f.drop(); +f.save({_id: 1, a: 1}); +f.update({}, {$unset: {"a": 1, "b.c": 1}}); +assert.docEq({_id: 1}, f.findOne(), "E");
\ No newline at end of file |