In general the Ast level should not have any references to any serializers, because by the time we are working at the Ast level everything has already been serialized to BsonValues.
However, AstFilterField and AstPipeline have a serializer property. We would like to remove these references to serializers in the Ast level by splitting the AstFilterField class into TranslatedFilterField + AstFilterField and moving the reference to the serializer to the new class that is not part of the Ast level. Same for splitting AstPipeline into TranslatedPipeline + AstPipeline.
The motivation for this is to be able to write new methods in AstSimplifier that can simplify certain $expr filters to simpler filters that don't use $expr.
- is depended on by
-
CSHARP-5436 Optimize special case of Any with constant array and field equals parameter in predicate
- Closed