summaryrefslogtreecommitdiff
path: root/jstests/core/all5.js
blob: a5faaa1767f0a0379e86cf9c9e4e92aa50a133eb (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
// Test $all/$elemMatch/null matching - SERVER-4517

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

function checkMatch(doc) {
    t.drop();
    t.save(doc);
    assert.eq(1, t.count({a: {$elemMatch: {b: null}}}));
    assert.eq(1, t.count({a: {$all: [{$elemMatch: {b: null}}]}}));
}

function checkNoMatch(doc) {
    t.drop();
    t.save(doc);
    assert.eq(0, t.count({a: {$all: [{$elemMatch: {b: null}}]}}));
}

checkNoMatch({});
checkNoMatch({a: 1});

checkNoMatch({a: []});
checkNoMatch({a: [1]});

checkMatch({a: [{}]});
checkMatch({a: [{c: 1}]});
checkMatch({a: [{b: null}]});
checkNoMatch({a: [{b: 1}]}, 0);