Я пытаюсь использовать jsonPath и функцию pick, чтобы определить, нужно ли запускать правило на основе текущего домена. Упрощенная версия того, что я делаю, здесь:
global
{
dataset shopscotchMerchants <- "https://s3.amazonaws.com/app-files/dev/merchantJson.json" cachable for 2 seconds
}
rule checkdataset is active
{
select when pageview ".*" setting ()
pre
{
merchantData = shopscotchMerchants.pick("$.merchants[?(@.merchant=='Telefora')]");
}
emit
<|
console.log(merchantData);
|>
}
Я ожидаю, что консольный вывод - это telefora object, вместо этого я получаю все три объекта из файла json.
Если вместо merchant == 'Telefora' я использую merchantID == 16, то это прекрасно работает. Я думал, что jsonPath может также сопоставлять строки. Хотя в приведенном выше примере поиск не выполняется в части json с merchantDomain, у меня возникла та же проблема.