2018-04-06 10:33:03 -04:00
|
|
|
// @tags: [requires_non_retryable_writes, requires_fastcount]
|
2017-11-28 10:10:44 -05:00
|
|
|
|
2009-01-26 23:28:26 -05:00
|
|
|
// remove.js
|
|
|
|
|
// unit test for db remove
|
|
|
|
|
|
2025-02-04 14:03:10 -05:00
|
|
|
const t = db[jsTestName()];
|
2009-01-26 23:28:26 -05:00
|
|
|
|
2016-03-09 12:17:50 -05:00
|
|
|
function f(n, dir) {
|
2025-02-04 14:03:10 -05:00
|
|
|
assert.commandWorked(t.createIndex({x: dir || 1}));
|
2016-03-09 12:17:50 -05:00
|
|
|
for (let i = 0; i < n; i++)
|
2025-08-21 10:17:44 -07:00
|
|
|
assert.commandWorked(t.save({x: 3, z: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}));
|
2009-01-26 23:28:26 -05:00
|
|
|
|
2016-03-09 12:17:50 -05:00
|
|
|
assert.eq(n, t.find().count());
|
2025-02-04 14:03:10 -05:00
|
|
|
assert.commandWorked(t.remove({x: 3}));
|
2009-01-26 23:35:26 -05:00
|
|
|
|
2016-03-09 12:17:50 -05:00
|
|
|
assert.eq(0, t.find().count());
|
|
|
|
|
|
|
|
|
|
assert(t.findOne() == null, "A:" + tojson(t.findOne()));
|
|
|
|
|
assert(t.validate().valid, "B");
|
2009-01-26 23:28:26 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
t.drop();
|
|
|
|
|
f(300, 1);
|
|
|
|
|
|
|
|
|
|
f(500, -1);
|
|
|
|
|
|
2016-03-09 12:17:50 -05:00
|
|
|
assert(t.validate().valid, "C");
|
2009-01-26 23:35:26 -05:00
|
|
|
|
2014-02-02 11:21:12 -05:00
|
|
|
// no query for remove() throws starting in 2.6
|
2025-08-21 10:17:44 -07:00
|
|
|
assert.throws(function () {
|
2016-03-09 12:17:50 -05:00
|
|
|
db.t.remove();
|
|
|
|
|
});
|