This post demonstrates how to order an ecto query by a text field. by sending the order raw sql query through Ecto.Query.API.fragment/1
Sample table Assuming we want to query a table containing a list of scheduled jobs with known statuses. e.g RUNNING, PENDING, COMPLETED, FAILED
id task_ref status last_exec_timestamp 1 2232323 PENDING 1605726253 2 2232324 FAILED 1605726153 4 2232326 RUNNING 1605726233 5 2232326 RUNNING 1605726233 6 2232326 FAILED 1605726233 7 2232326 COMPLETED 1605726233 8 2232326 FAILED 1605726233 Our objective is to: Read More...
I was recently working on a project where I needed to compose a dynamic query for filtering a table using ecto. The filter parameters are coming from a graphql resolver.
# ~/query.ex #A sample filter input filter_input = %{status: "AVAILABLE", genre: "Comedy", last_update_gte: "2018-10-18 00:00:00", last_update_lte: "2018-10-18 23:59:59" } #The schema I will be querying defmodule Movies do use Ecto.Schema schema "movies" do field(:genre, :string) field(:status, :string) timestamps() end end #My resolver function defmodule MovieFilter do import Ecto. Read More...