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 from hospital and rooms.
  • $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

Link to this function

array_ilike_dynamic(key, value, dynamics, opts \\ [])

View Source
Link to this function

between_dynamic(key, values, dynamics, opts \\ [])

View Source
between_dynamic(any(), any(), any(), nil | keyword() | map()) ::
  Ecto.Query.DynamicExpr.t()

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)"
Link to this function

between_equal_dynamic(key, values, dynamics, opts \\ [])

View Source
between_equal_dynamic(any(), any(), any(), nil | keyword() | map()) ::
  Ecto.Query.DynamicExpr.t()

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)"
Link to this function

contains_any_dynamic(key, values, dynamics, opts \\ [])

View Source
contains_any_dynamic(any(), any(), any(), nil | keyword() | map()) ::
  Ecto.Query.DynamicExpr.t()

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).
Link to this function

contains_dynamic(key, values, dynamics, opts \\ [])

View Source
contains_dynamic(any(), any(), any(), nil | keyword() | map()) ::
  Ecto.Query.DynamicExpr.t()

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).
Link to this function

eq_dynamic(key, value, dynamics, opts \\ [])

View Source
eq_dynamic(any(), any(), any(), nil | keyword() | map()) ::
  Ecto.Query.DynamicExpr.t()

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)"
Link to this function

gt_dynamic(key, value, dynamics, opts \\ [])

View Source
gt_dynamic(any(), any(), any(), nil | keyword() | map()) ::
  Ecto.Query.DynamicExpr.t()

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)"
Link to this function

gte_dynamic(key, value, dynamics, opts \\ [])

View Source
gte_dynamic(any(), any(), any(), nil | keyword() | map()) ::
  Ecto.Query.DynamicExpr.t()

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)"
Link to this function

ilike_dynamic(key, value, dynamics, opts \\ [])

View Source
ilike_dynamic(any(), any(), any(), nil | keyword() | map()) ::
  Ecto.Query.DynamicExpr.t()

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).
Link to this function

in_dynamic(key, values, dynamics, opts \\ [])

View Source
in_dynamic(any(), any(), any(), nil | keyword() | map()) ::
  Ecto.Query.DynamicExpr.t()

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)"
Link to this function

is_nil_dynamic(key, dynamics, opts \\ [])

View Source
is_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)"
Link to this function

like_dynamic(key, value, dynamics, opts \\ [])

View Source
like_dynamic(any(), any(), any(), nil | keyword() | map()) ::
  Ecto.Query.DynamicExpr.t()

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).
Link to this function

lt_dynamic(key, value, dynamics, opts \\ [])

View Source
lt_dynamic(any(), any(), any(), nil | keyword() | map()) ::
  Ecto.Query.DynamicExpr.t()

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)"
Link to this function

lte_dynamic(key, value, dynamics, opts \\ [])

View Source
lte_dynamic(any(), any(), any(), nil | keyword() | map()) ::
  Ecto.Query.DynamicExpr.t()

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)"