summaryrefslogtreecommitdiff
path: root/jstests/core/in7.js
blob: 2f6c9e3ff1aa7a362bf6cef4f06e6678773412e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 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.