Determine if the field is explicitly included/excluded, implicitly included, or
the projection does
Returns true if the field is needed to evaluate the projection
Adds two projections and returns a new projection containing both. Any
projection can be null. If th
If the field is an ancestor of the pattern, and if inclusion is true, returns
true. Otherwise, retur
Returns whether to include/exclude the field based on whether the field matches
Returns if the field should be included based on the recursive pattern.
Returns if the field should be included based on the pattern given.
If a path includes array indexes, change the indexes into ANY