diff options
Diffstat (limited to 'jstests/core/write/delete/remove2.js')
-rw-r--r-- | jstests/core/write/delete/remove2.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/jstests/core/write/delete/remove2.js b/jstests/core/write/delete/remove2.js new file mode 100644 index 00000000000..4193b8dd11f --- /dev/null +++ b/jstests/core/write/delete/remove2.js @@ -0,0 +1,47 @@ +// @tags: [requires_non_retryable_writes] + +// remove2.js +// a unit test for db remove +(function() { +"use strict"; + +const t = db.removetest2; + +function f() { + t.save({ + x: [3, 3, 3, 3, 3, 3, 3, 3, 4, 5, 6], + z: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }); + t.save({x: 9}); + t.save({x: 1}); + + t.remove({x: 3}); + + assert(t.findOne({x: 3}) == null); + assert(t.validate().valid); +} + +function g() { + t.save({x: [3, 4, 5, 6], z: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}); + t.save({x: [7, 8, 9], z: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}); + + const res = t.remove({x: {$gte: 3}}); + + assert.commandWorked(res); + assert(t.findOne({x: 3}) == null); + assert(t.findOne({x: 8}) == null); + assert(t.validate().valid); +} + +t.drop(); +f(); +t.drop(); +g(); + +t.createIndex({x: 1}); +t.remove({}); +f(); +t.drop(); +t.createIndex({x: 1}); +g(); +})(); |