33 lines
735 B
JavaScript
33 lines
735 B
JavaScript
// @tags: [requires_non_retryable_writes, requires_fastcount]
|
|
|
|
// remove.js
|
|
// unit test for db remove
|
|
|
|
const t = db[jsTestName()];
|
|
|
|
function f(n, dir) {
|
|
assert.commandWorked(t.createIndex({x: dir || 1}));
|
|
for (let i = 0; i < n; i++)
|
|
assert.commandWorked(t.save({x: 3, z: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}));
|
|
|
|
assert.eq(n, t.find().count());
|
|
assert.commandWorked(t.remove({x: 3}));
|
|
|
|
assert.eq(0, t.find().count());
|
|
|
|
assert(t.findOne() == null, "A:" + tojson(t.findOne()));
|
|
assert(t.validate().valid, "B");
|
|
}
|
|
|
|
t.drop();
|
|
f(300, 1);
|
|
|
|
f(500, -1);
|
|
|
|
assert(t.validate().valid, "C");
|
|
|
|
// no query for remove() throws starting in 2.6
|
|
assert.throws(function () {
|
|
db.t.remove();
|
|
});
|