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}}}));
|