29 lines
799 B
JavaScript
29 lines
799 B
JavaScript
// Check that $all matching null is consistent with $in - SERVER-3820
|
|
|
|
t = db.jstests_all3;
|
|
t.drop();
|
|
|
|
t.save({});
|
|
|
|
assert.eq(1, t.count({foo: {$in: [null]}}));
|
|
assert.eq(1, t.count({foo: {$all: [null]}}));
|
|
assert.eq(0, t.count({foo: {$not: {$all: [null]}}}));
|
|
assert.eq(0, t.count({foo: {$not: {$in: [null]}}}));
|
|
|
|
t.remove({});
|
|
t.save({foo: 1});
|
|
assert.eq(0, t.count({foo: {$in: [null]}}));
|
|
assert.eq(0, t.count({foo: {$all: [null]}}));
|
|
assert.eq(1, t.count({foo: {$not: {$in: [null]}}}));
|
|
assert.eq(1, t.count({foo: {$not: {$all: [null]}}}));
|
|
|
|
t.remove({});
|
|
t.save({foo: [0, 1]});
|
|
assert.eq(1, t.count({foo: {$in: [[0, 1]]}}));
|
|
assert.eq(1, t.count({foo: {$all: [[0, 1]]}}));
|
|
|
|
t.remove({});
|
|
t.save({foo: []});
|
|
assert.eq(1, t.count({foo: {$in: [[]]}}));
|
|
assert.eq(1, t.count({foo: {$all: [[]]}}));
|