summaryrefslogtreecommitdiff
path: root/jstests/core/array_match2.js
blob: 44cbfe3394198f9ca85189ed4b8fe892369f4516 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

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

t.save({a: [{1: 4}, 5]});
// When the array index is the last field, both of these match types work.
assert.eq(1, t.count({'a.1': 4}));
assert.eq(1, t.count({'a.1': 5}));

t.remove({});
// When the array index is not the last field, only one of the match types works.
t.save({a: [{1: {foo: 4}}, {foo: 5}]});
assert.eq(1, t.count({'a.1.foo': 4}));
assert.eq(1, t.count({'a.1.foo': 5}));

// Same issue with the $exists operator
t.remove({});
t.save({a: [{1: {foo: 4}}, {}]});
assert.eq(1, t.count({'a.1': {$exists: true}}));
assert.eq(1, t.count({'a.1.foo': {$exists: true}}));