summaryrefslogtreecommitdiff
path: root/jstests/core/write/delete/remove2.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/write/delete/remove2.js')
-rw-r--r--jstests/core/write/delete/remove2.js47
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();
+})();