nuxScript

📊 Query System

Sistema de queries SQL-like para dados - como LINQ em C# ou Spark

Sintaxe

let users = [
    {name: "Alice", age: 25, city: "NYC"},
    {name: "Bob", age: 30, city: "LA"}
]

// Sintaxe de query
let young = select u in users where u.age < 30

Funções de Query

FunçãoDescriçãoExemplo
select(data, ...fields)Seleciona camposselect(users, "name")
where(data, cond)Filtra dadoswhere(users, .age > 20)
order_by(data, field, dir)Ordenaorder_by(users, "name", "asc")
group_by(data, field)Agrupagroup_by(users, "city")
join(a, b, on, type)Joinsjoin(users, orders, .id == .user_id)
count(data)Contacount(users)
sum(data, field)Somasum(users, "age")
avg(data, field)Médiaavg(users, "age")
min(data, field)Mínimomin(users, "age")
max(data, field)Máximomax(users, "age")
pluck(data, field)Extrai campopluck(users, "name")
distinct(data)Únicosdistinct(users)

Exemplos

// Query completo
let result = users
    |> where(.age >= 18)
    |> order_by("name")
    |> select("name", "city")

// Group by
let by_city = group_by(users, "city")
for city in by_city
    print("{city.key}: {city.count} users")
end

// Aggregates
let stats = users
    |> count()           // 2
    |> sum("age")        // 55
    |> avg("age")        // 27.5
    |> min("age")        // 25
    |> max("age")        // 30