summaryrefslogtreecommitdiff
path: root/jstests/core/remove.js
blob: 37754c74190d131859e9efe1cc45a9eb96f34c20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// @tags: [requires_non_retryable_writes, requires_fastcount]

// remove.js
// unit test for db remove

t = db.removetest;

function f(n, dir) {
    t.ensureIndex({x: dir || 1});
    for (i = 0; i < n; i++)
        t.save({x: 3, z: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"});

    assert.eq(n, t.find().count());
    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();
});