Query Builder v0.17.0 QueryBuilder View Source
Link to this section Summary
Functions
Allows to pass a list of operations through a keyword list.
A join query expression.
Run QueryBuilder.where/2
only if given condition is met.
Run QueryBuilder.where/4
only if given condition is met.
An order by query expression.
An order by query expression.
Preloads the associations.
An AND where query expression.
An AND where query expression.
Link to this section Functions
Allows to pass a list of operations through a keyword list.
Example:
QueryBuilder.from_list(query, [
where: [name: "John", city: "Anytown"],
preload: [articles: :comments]
])
A join query expression.
Third argument type
may be passed one of the possible values for
Ecto.Query.join/5
's qualifier argument.
Example:
QueryBuilder.join(query, :articles, :left)
Run QueryBuilder.where/2
only if given condition is met.
Run QueryBuilder.where/4
only if given condition is met.
An order by query expression.
Example:
QueryBuilder.order_by(query, lastname: :asc, firstname: :asc)
An order by query expression.
For more about the second argument, see where/3
.
Example:
QueryBuilder.order_by(query, :articles, title@articles: :asc)
Preloads the associations.
Bindings are automatically set if joins have been made, or if it is preferable to join (i.e. one-to-one associations are preferable to include into the query result rather than emitting separate DB queries).
Example:
QueryBuilder.preload(query, [role: :permissions, articles: [:stars, comments: :user]])
An AND where query expression.
Example:
QueryBuilder.where(query, firstname: "John")
An AND where query expression.
Associations are passed in second argument; fields from these associations can then
be referenced by writing the field name, followed by the "@" character and the
association name, as an atom. For example: :name@users
.
Example:
QueryBuilder.where(query, [role: :permissions], name@permissions: :write)
OR clauses may be passed through last argument opts
. For example:
QueryBuilder.where(query, [], [firstname: "John"], or: [firstname: "Alice", lastname: "Doe"], or: [firstname: "Bob"])