-
Notifications
You must be signed in to change notification settings - Fork 7
Поддержка EqualPosition #128
Description
В rx на уровне ядра есть возможность выполнять выполнять фильтрацию по массивам с учётом совпадения индексов внутри этих массивов через интерфейс EqualPosition. Документация с примером.
Также через этот же механизм можно выполнять запросы с группировкой по определённым уровням вложенности. Документация с примером.
Это полезно для случаев, когда у пользователя есть массив с объектами и несколько индексов, построенных поверх полей этих объектов. В этом случае EqualPosition позволяет объединить несколько условий и наложить их на конкретный объект - с одной стороны, это даёт возможность связать между собой в запросе два независимых индекса, а с другой - сгруппировать вложенные массивы в рамках одного логического объекта
В Java хотелось бы поддержать интерфейс, аналогичный тому, что есть в Go, позволяющий принимать список из произвольного числа индексов (2+) или json-путей: https://github.com/Restream/reindexer/blob/v5.12.0/query.go#L1386
Важно: Конструкция EqualPosition привязывается к конкретной скобке (если она есть) и использует смещение этих скобок внутри запроса, которое байндинг должен посчитать самостоятельно (в Go это сделано через переменные whereEntriesCount и openedBrackets)