Details
-
Bug
-
Resolution: Duplicate
-
Major - P3
-
None
-
None
-
None
-
ALL
Description
ExpressionCompare::optimize() generates an ExpressionFieldRange for a $ne comparison against a constant. However ExpressionFieldRange does not properly encapsulate the semantics of not equals matching.
Test:
c = db.c;
|
c.drop();
|
|
|
c.save( { a:1, b:1 } );
|
c.save( { a:2, b:1 } );
|
printjson( c.aggregate( { $project:{ z:{ $ne:[ '$a', 1 ] } } } ) );
|
printjson( c.aggregate( { $project:{ z:{ $ne:[ '$a', '$b' ] } } } ) );
|
Attachments
Issue Links
- duplicates
-
SERVER-6147 aggregation $ne expression applied to constant returns incorrect result
-
- Closed
-