summaryrefslogtreecommitdiff
path: root/jstests/core/query/array/arrayfind5.js
blob: 6238284f89a2ad247951d04e74b541fde37319ab (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 indexed elemmatch of missing field.
// @tags: [
//   # TODO SERVER-67506: Dotted path equality to null matches non-object array elements in CQF.
//   cqf_incompatible,
// ]

let t = db.jstests_arrayfind5;
t.drop();

function check(nullElemMatch) {
    assert.eq(1, t.find({'a.b': 1}).itcount());
    assert.eq(1, t.find({a: {$elemMatch: {b: 1}}}).itcount());
    assert.eq(nullElemMatch ? 1 : 0, t.find({'a.b': null}).itcount());
    assert.eq(nullElemMatch ? 1 : 0,
              t.find({a: {$elemMatch: {b: null}}}).itcount());  // see SERVER-3377
}

t.save({a: [{}, {b: 1}]});
check(true);
t.createIndex({'a.b': 1});
check(true);

t.drop();

t.save({a: [5, {b: 1}]});
check(false);
t.createIndex({'a.b': 1});
check(false);