24 lines
677 B
JavaScript
24 lines
677 B
JavaScript
// Uassert when $elemMatch is attempted within $in SERVER-3545
|
|
|
|
t = db.jstests_ina;
|
|
t.drop();
|
|
t.save({});
|
|
|
|
assert.throws(function() {
|
|
t.find({a: {$in: [{$elemMatch: {b: 1}}]}}).itcount();
|
|
});
|
|
assert.throws(function() {
|
|
t.find({a: {$not: {$in: [{$elemMatch: {b: 1}}]}}}).itcount();
|
|
});
|
|
|
|
assert.throws(function() {
|
|
t.find({a: {$nin: [{$elemMatch: {b: 1}}]}}).itcount();
|
|
});
|
|
assert.throws(function() {
|
|
t.find({a: {$not: {$nin: [{$elemMatch: {b: 1}}]}}}).itcount();
|
|
});
|
|
|
|
// NOTE Above we don't check cases like {b:2,$elemMatch:{b:3,4}} - generally
|
|
// we assume that the first key is $elemMatch if any key is, and validating
|
|
// every key is expensive in some cases.
|