summaryrefslogtreecommitdiff
path: root/jstests/core/exists5.js
blob: 2f4b1a9b8de41cf37ecba1023ecd9652047dbd42 (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
// Test some $not/$exists cases.

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

t.save({a: 1});
assert.eq(1, t.count({'a.b': {$exists: false}}));
assert.eq(1, t.count({'a.b': {$not: {$exists: true}}}));
assert.eq(1, t.count({'c.d': {$not: {$exists: true}}}));
assert.eq(0, t.count({'a.b': {$exists: true}}));
assert.eq(0, t.count({'a.b': {$not: {$exists: false}}}));
assert.eq(0, t.count({'c.d': {$not: {$exists: false}}}));

t.drop();
t.save({a: {b: 1}});
assert.eq(1, t.count({'a.b': {$exists: true}}));
assert.eq(1, t.count({'a.b': {$not: {$exists: false}}}));
assert.eq(0, t.count({'a.b': {$exists: false}}));
assert.eq(0, t.count({'a.b': {$not: {$exists: true}}}));

t.drop();
t.save({a: [1]});
assert.eq(1, t.count({'a.b': {$exists: false}}));
assert.eq(1, t.count({'a.b': {$not: {$exists: true}}}));
assert.eq(0, t.count({'a.b': {$exists: true}}));
assert.eq(0, t.count({'a.b': {$not: {$exists: false}}}));

t.drop();
t.save({a: [{b: 1}]});
assert.eq(1, t.count({'a.b': {$exists: true}}));
assert.eq(1, t.count({'a.b': {$not: {$exists: false}}}));
assert.eq(0, t.count({'a.b': {$exists: false}}));
assert.eq(0, t.count({'a.b': {$not: {$exists: true}}}));