Group By

logic_group_by · logic · Logica & Flow · Disponibile · v1.0.0

Descrizione

Operatore di raggruppamento enterprise stile SQL GROUP BY ma applicato in-memory a un array di oggetti JavaScript proveniente da uno step upstream del workflow — fondamento di tutte le pipeline di analytics, reporting, batch processing che lavorano su dataset rappresentati come array di records (output di action_db_query, action_csv_parse, listCommits, queryDatabase Notion, ecc.). Accetta un'espressione di path/key per identificare il campo di raggruppamento — supporto nativo per path nested con notazione dot/bracket: "user.country" (group per country del nested user), "customer.address[0].city" (primo indirizzo del cliente), con precedenza al match esatto se una chiave contiene letteralmente un punto. Handling robusto dei valori mancanti: null e undefined finiscono nel gruppo speciale "__missing__" invece di essere silenziosamente droppati (evita il bug subdolo dei dataset che sembrano completi ma hanno record orfani non contati); empty string "" resta un gruppo separato da null; per le chiavi numeriche con decimali la rappresentazione è fissata a "floatPrecision" decimali (default 4) così 0.1+0.2 e 0.3 cadono nello stesso bucket. Output: { groups: { [chiave]: [item...] }, counts: { [chiave]: N }, groupCount, totalItems, largestGroup (chiave del gruppo più numeroso), smallestGroup }. Use case classici della pipeline business: raggruppare 200 ordini in pipeline per cliente prima di emettere fatture mensili consolidate via action_pdf_generate (1 fattura per cliente invece di 200 singole); aggregare 100k righe di audit_log per ora/giorno per popolare dashboard analytics tenant; raggruppare 5000 lead CRM per source ("google_ads", "linkedin_organic", "referral_partner") per il report ROI per source del marketing manager; raggruppare email triage per categoria per generare metriche di customer support per il monthly business review; pre-processing prima di logic_aggregate (group + sum/avg/min/max/count) — la coppia group_by → aggregate è il workhorse delle pipeline ETL leggere senza dover scendere a SQL diretto.

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
sourceExpression
Array da raggruppare
expressionsiinput
input.records
Espressione JS che ritorna un array. Default = input. Es. input.orders.
groupKey
Campo per raggruppare
stringsi
es. customer_id, category, region
Nome del campo dell'item su cui raggruppare (supporta dot-path: user.country, items[0].city). Es. items=[{customer:1},{customer:2},{customer:1}] con groupKey=customer → { "1": [...], "2": [...] }.
floatPrecision
Decimali per chiavi numeriche
numberno4Numero di decimali a cui fissare le chiavi numeriche con virgola (così 0.1+0.2 e 0.3 finiscono nello stesso gruppo). Default 4, max 12. Gli interi non sono toccati.
maxItems
Max item (cap difensivo)
numberno100000Hard cap anti-OOM sul numero di item processati. Se l'input supera questa soglia viene troncato e raggruppa solo i primi N (warning emesso). Default 100k, tetto 1M.

💡 Esempio configurazione

Snippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.

{
  "id": "node-logic_group_by-1",
  "defId": "logic_group_by",
  "label": "Group By",
  "config": {
    "sourceExpression": "input",
    "groupKey": "es. customer_id, category, region",
    "floatPrecision": 4,
    "maxItems": 100000
  }
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare Group By?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi