Čo to je?
Poznámka pre administrátorov: Táto príručka vysvetľuje, ako používať “Smart Tools” (funkcie) na transformáciu a analýzu vašich dát za behu. Pokrýva veci ako výpočet DPH, extrahovanie rokov z dátumov alebo počítanie, koľko položiek je v objednávke.
Pre koho je to určené? Administrátori by si to mali prečítať, aby pochopili, ako môžu robiť matematické a dátumovo orientované analýzy priamo vo svojich vyhľadávaniach. Je to obzvlášť užitočné na vytváranie reportov. Vývojári budú tieto funkcie rozsiahlo používať v automatizovaných pracovných postupoch.
Kľúčové výhody pre e-shop:
- Automatizovaná matematika: Filtrujte produkty na základe vypočítaných hodnôt (ako “cena s DPH”) bez potreby samostatného poľa v databáze.
- Časovo orientované prehľady: Ľahko nájdite objednávky z konkrétneho roka, mesiaca alebo dokonca hodiny dňa.
- Súhrnné reporty: Okamžite počítajte, sumujte alebo spriemerujte svoje dáta (napr. “ukáž mi zákazníkov s celkovou hodnotou objednávok nad 500 USD”).
- Čistenie textu: Vyčistite výsledky vyhľadávania konvertovaním mien na malé písmená alebo odstránením nadbytočných medzier.
Funkcie a Agregácia
Vstavané funkcie vám umožňujú transformovať a analyzovať vaše dáta priamo v podmienkach filtra.
[navigate:where-basics.md|Základné filtre|filter] [navigate:where-advanced.md|Rozšírené filtre|database]
Funkcie pre dátum a čas
Extrahujte špecifické komponenty z polí dátumu/času alebo vypočítajte hranice časových období.
Extrakčné funkcie
year(dateOfIssue) = 2023 and month(requestedDeliveryDate) = 12
[badge:Functions|secondary|right]
Kvartál a Týždeň
quarter(dateOfIssue) = 4 and dayofweek(dateOfIssue) = 1
[badge:Functions|secondary|right]
Funkcie pre rozsah dátumov
Tieto vracajú presné počiatočné a koncové hranice pre časové obdobia.
dateOfIssue >= startOfYear(now()) and dateOfIssue <= endOfMonth(now())
[badge:Functions|secondary|right]
Agregačné funkcie
Vykonávajte výpočty cez MNOHO relácií (one-to-many, many-to-many) pre výkonné analýzy.
Základná agregácia
count(variants) >= 3 and sum(variants.priceWithVat) > 1000
[badge:Aggregation|secondary|right]
Filtrovaná agregácia
Počítajte alebo vypočítajte hodnoty iba pre súvisiace záznamy, ktoré spĺňajú špecifickú podmienku.
count(variants[priceWithVat > 100]) > 2
[badge:Aggregation|secondary|right]
Priemer, Minimum a Maximum
avg(variants.priceWithVat) > 500 and min(variants.weight) > 1
[badge:Aggregation|secondary|right]
Aritmetické operátory
Vykonávajte matematické operácie na číselných poliach a hodnotách pomocou štandardných pravidiel priority (*, /, % pred +, -).
Výpočty ceny a množstva
priceWithVat * 1.21 > 100 and standardPrice - 5 > 10
[badge:Arithmetic|secondary|right]
Modulo a Zoskupovanie
actionPrice % 2 = 0 and (priceWithoutVat - purchasePriceWithoutVat) * 1.21 > 500
[badge:Arithmetic|secondary|right]
Funkcie pre reťazce a matematiku
Textové transformácie
lower(name) = "iphone" and length(description) > 50
[badge:Functions|secondary|right]
Vyhľadávanie a Extrakcia reťazcov
indexof(email, "@") > 0 and substring(username, 0, 3) = "PRD"
[badge:Functions|secondary|right]
Matematické zaokrúhľovanie
round(priceWithVat) = 100 and floor(weight) = 4
[badge:Math|secondary|right]
Referenčná tabuľka
| Funkcia | Kategória | Popis | Príklad |
|---|---|---|---|
now() |
Special | Aktuálna časová pečiatka | createdAt > now() |
me() |
Special | ID aktuálneho používateľa | createdBy_id = me() |
count() |
Aggregation | Počet súvisiacich záznamov | count(variants) > 3 |
sum() |
Aggregation | Súčet číselného poľa | sum(variants.priceWithVat) > 100 |
avg() |
Aggregation | Priemer číselného poľa | avg(variants.weight) > 4 |
min() |
Aggregation | Minimálna hodnota | min(variants.priceWithVat) > 10 |
max() |
Aggregation | Maximálna hodnota | max(variants.priceWithVat) < 100 |
year() |
Date/Time | Extrahovanie roka | year(createdAt) = 2023 |
month() |
Date/Time | Extrahovanie mesiaca (1-12) | month(createdAt) = 12 |
day() |
Date/Time | Extrahovanie dňa (1-31) | day(createdAt) = 25 |
hour() |
Time | Extrahovanie hodiny (0-23) | hour(createdAt) = 14 |
round() |
Math | Zaokrúhlenie na najbližšie celé číslo | round(priceWithVat) = 100 |
concat() |
String | Kombinovanie reťazcov | concat(firstname, surname) = "JohnDoe" |
indexof() |
String | Nájdenie pozície podreťazca | indexof(email, "@") > 0 |
trim() |
String | Odstránenie medzier | trim(name) = "Product" |
isnull() |
Special | Kontrola, či je null | isnull(ean) = true |
Referencia pre rozsahy dátumov
| Period | Start Function | End Function |
|---|---|---|
| Year | startOfYear(date) |
endOfYear(date) |
| Month | startOfMonth(date) |
endOfMonth(date) |
| Day | startOfDay(date) |
endOfDay(date) |
| Hour | startOfHour(date) |
endOfHour(date) |