-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Optimization
-
None
-
3
-
None
-
None
-
None
-
None
-
None
-
None
We already simplify the $element value form to a trivially false expression.
Compare:
db.test.find({"a.m":{$elemMatch:{$in:[]}}}).explain(true) ... winningPlan: { isCached: false, stage: 'EOF', type: 'predicateEvalsToFalse' },
db.test.find({a:{$elemMatch:{m:{$in:[]}}}}).explain(true) ... winningPlan: { isCached: false, stage: 'COLLSCAN', filter: { a: { '$elemMatch': { '$alwaysFalse': 1 } } }, direction: 'forward' },