FatEcto v0.5.0 FatEcto.FatQuery.FatDynamics View Source
Builds a where query
using dynamics.
Parameters
queryable
- Ecto Queryable that represents your schema name, table name or query.query_opts
- Where query options as a map.
Examples
iex> query_opts = %{
...> "$select" => %{
...> "$fields" => ["name", "location", "rating"]
...> },
...> "$where" => %{
...> "name" => "%John%",
...> "location" => nil,
...> "rating" => "$not_null",
...> "total_staff" => %{"$between" => [1, 3]}
...> }
...> }
iex> Elixir.MyApp.Query.build!(FatEcto.FatHospital, query_opts)
#Ecto.Query<from f0 in FatEcto.FatHospital, where: f0.total_staff > ^1 and f0.total_staff < ^3 and (not(is_nil(f0.rating)) and (f0.name == ^"%John%" and (is_nil(f0.location) and ^true))), select: map(f0, [:name, :location, :rating])>
Options
$select
- Select the fields fromhospital
androoms
.$where
- Added the where attribute in the query.
Link to this section Summary
Functions
Builds a dynamic query where value is between the provided attributes.
Builds a dynamic query where value equal and between the provided attributes.
Builds a dynamic query when value of jsonb matches with any list attribute.
Builds a dynamic query when value of jsonb field is in the list.
Builds a dynamic query where field is equal to value.
Builds a dynamic query where field is greater than the value.
Builds a dynamic query where field is greater than and equal to given value.
Builds a dynamic query where field matches the value substring.
Builds a dynamic query where value is in the the provided list attributes.
Builds a dynamic query where field is nil.
Builds a dynamic query where field matches matches the value substring.
Builds a dynamic query where field is less than the value.
Builds a dynamic query where field is less than and equal to the value.
Link to this section Functions
Builds a dynamic query where value is between the provided attributes.
Parameters
key
- Field name.value
- Values of the field as a list.dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Examples
iex> result = Elixir.FatEcto.FatQuery.FatDynamics.between_dynamic("experience_years", [2, 5], true, [dynamic_type: :and])
iex> inspect(result)
"dynamic([q], q.experience_years > ^2 and q.experience_years < ^5 and ^true)"
Builds a dynamic query where value equal and between the provided attributes.
Parameters
key
- Field name.value
- Values of the field as a list.dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Examples
iex> result = Elixir.FatEcto.FatQuery.FatDynamics.between_equal_dynamic("experience_years", [2, 5], true, [dynamic_type: :and])
iex> inspect(result)
"dynamic([q], q.experience_years >= ^2 and q.experience_years <= ^5 and ^true)"
Builds a dynamic query when value of jsonb matches with any list attribute.
Parameters
key
- Field name.values
- values of jsonb field.dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Builds a dynamic query when value of jsonb field is in the list.
Parameters
key
- Field name.values
- values of jsonb field.dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Builds a dynamic query where field is equal to value.
Parameters
key
- Field name.value
- Value of the field.dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Examples
iex> result = Elixir.FatEcto.FatQuery.FatDynamics.eq_dynamic("experience_years", 2, true, [dynamic_type: :and])
iex> inspect(result)
"dynamic([q], q.experience_years == ^2 and ^true)"
Builds a dynamic query where field is greater than the value.
Parameters
key
- Field name.value
- Value of the field.dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Examples
iex> result = Elixir.FatEcto.FatQuery.FatDynamics.gt_dynamic("experience_years", 2, true, [dynamic_type: :or, binding: :last])
iex> inspect(result)
"dynamic([..., c], c.experience_years > ^2 or ^true)"
Builds a dynamic query where field is greater than and equal to given value.
Parameters
key
- Field name.value
- Value of the field.dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Examples
iex> result = Elixir.FatEcto.FatQuery.FatDynamics.gte_dynamic("experience_years", 2, true, [dynamic_type: :and, binding: :last])
iex> inspect(result)
"dynamic([..., c], c.experience_years >= ^2 and ^true)"
Builds a dynamic query where field matches the value substring.
Parameters
key
- Field name.value
- Value of the field.dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Builds a dynamic query where value is in the the provided list attributes.
Parameters
key
- Field name.values
- Pass a list of values of the field that represent range.dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Examples
iex> result = Elixir.FatEcto.FatQuery.FatDynamics.in_dynamic("experience_years", [2, 5], true, [dynamic_type: :and])
iex> inspect(result)
"dynamic([q], q.experience_years in ^[2, 5] and ^true)"
is_nil_dynamic(key, dynamics, opts \\ [])
View Sourceis_nil_dynamic(any(), any(), nil | keyword() | map()) :: Ecto.Query.DynamicExpr.t()
Builds a dynamic query where field is nil.
Parameters
key
- Field name .dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Examples
iex> result = Elixir.FatEcto.FatQuery.FatDynamics.is_nil_dynamic("location", true, [dynamic_type: :and])
iex> inspect(result)
"dynamic([c], is_nil(c.location) and ^true)"
Builds a dynamic query where field matches matches the value substring.
Parameters
key
- Field name.value
- Value of the field.dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Builds a dynamic query where field is less than the value.
Parameters
key
- Field name.value
- Value of the field.dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Examples
iex> result = Elixir.FatEcto.FatQuery.FatDynamics.lt_dynamic("experience_years", 2, true, [dynamic_type: :and, binding: :last])
iex> inspect(result)
"dynamic([..., c], c.experience_years < ^2 and ^true)"
Builds a dynamic query where field is less than and equal to the value.
Parameters
key
- Field name.value
- Value of the field.dynamics
- Default or previous dynamic to append to the query.opts
- Options related to query bindings alongwith dynamic type(and/or).
Examples
iex> result = Elixir.FatEcto.FatQuery.FatDynamics.lte_dynamic("experience_years", 2, true, [dynamic_type: :or])
iex> inspect(result)
"dynamic([q], q.experience_years <= ^2 or ^true)"