+- Fixed `field.eq(x)` / `field.within(..)` on an array (list) field silently matching nothing when the filter runs as a collection scan. Array membership is matched element-wise on the index path but was matched by whole-value equality (`deepEquals`) on the collection-scan path, so results depended on whether an index existed or was chosen by the planner. Combined with the 2.0.3 planner change (mirror of nitrite-java [#1266](https://github.com/nitrite/nitrite-java/issues/1266)) — which correctly relegates the non-winning-index filter to a collection scan — an AND of an indexed array `eq` and a bounded range on a second indexed field left the array `eq` running as a collection scan, where it matched no documents. `EqualsFilter` and `_InFilter` now match an array/`Iterable` field by element containment on the collection-scan path, mirroring `applyOnIndex`.
0 commit comments