summaryrefslogtreecommitdiff
path: root/jstests/core/remove6.js
blob: f60200a8d81224bd9d3ba497bca65aa66f9e316b (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
33
34
35
36
37
38
39
40
// @tags: [requires_non_retryable_writes, requires_fastcount]

t = db.remove6;
t.drop();

N = 1000;

function pop() {
    t.drop();
    var arr = [];
    for (var i = 0; i < N; i++) {
        arr.push({x: 1, tags: ["a", "b", "c"]});
    }
    t.insert(arr);
    assert.eq(t.count(), N);
}

function del() {
    return t.remove({tags: {$in: ["a", "c"]}});
}

function test(n, idx) {
    pop();
    assert.eq(N, t.count(), n + " A " + idx);
    if (idx)
        t.createIndex(idx);
    var res = del();
    assert(!res.hasWriteError(), "error deleting: " + res.toString());
    assert.eq(0, t.count(), n + " B " + idx);
}

test("a");
test("b", {x: 1});
test("c", {tags: 1});

N = 5000;

test("a2");
test("b2", {x: 1});
test("c2", {tags: 1});