summaryrefslogtreecommitdiff
path: root/jstests/all5.js
blob: a5d9e312292df1e28127a31a0f0fcaa6528b15f9 (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 );