FatEcto.Query.Dynamics.Builder (FatEcto v1.2.0)

View Source

Builds Ecto dynamic expressions from a structured query map. Used by FatDynamicsBuildable for dynamic-only use cases.

Summary

Functions

Builds an Ecto dynamic query from a JSON-like structure.

Functions

build(query_map, override_callback \\ nil, overrideable_fields \\ nil)

@spec build(map(), function() | nil, list() | nil) :: Ecto.Query.dynamic_expr()

Builds an Ecto dynamic query from a JSON-like structure.

Examples

iex> import Ecto.Query
...> query = FatEcto.Query.Dynamics.Builder.build(%{
...>   "$OR" => [
...>     %{"name" => "John"},
...>     %{"phone" => nil},
...>     %{"age" => %{"$GT" => 30}}
...>   ]
...> })
iex> inspect(query)
"dynamic([q], q.name == ^\"John\" or is_nil(q.phone) or q.age > ^30)"