EctoNeo4j v0.6.3 Ecto.Adapters.Neo4j.Query View Source
Ecto.Adapters.Neo4j.Query
is designed to build Cypher queries programmatically.
It has functions to build essential parts of a Cypher Query and its to_string
returns a valid
cypher query.
Example
# MATCH
# (n:User)
# WHERE
# n.uuid = "my-user-uid"
# RETURN
# n
alias Ecto.Adapters.Neo4j.Query
node = %Query.NodeExpr{
index: 0,
variable: "n",
labels: ["User"]
}
condition = %Ecto.Adapters.Neo4j.Condition{
source: node.variable,
field: :uuid,
operator: :==,
value: "user_uuid"
}
params = %{
user_uuid: "my-user-uid"
}
return = %Query.ReturnExpr{
distinct?: false,
fields: [
node
]
}
{cql, params} =
Query.new()
|> Query.match([node])
|> Query.where(condition)
|> Query.return(return)
|> Query.params(params)
IO.puts(cql)
"MATCH\n (n:User)\n\nWHERE\n n.uuid = {user_uuid}\n\n\n\n\n\nRETURN\n n\n\n\n\n\n"
IO.inspect(params)
%{user_uuid: "my-user-uid"}
Link to this section Summary
Functions
Adds information regarding batch query.
Adds DELETE data
Adds LIMIT data
Adds MATCH data
Adds MERGE data
Initilaize the Query struct
Adds ORDER BY data
Adds params
Adds RETLURN data
Adds SET data
Adds SKIP data
Adds WHERE data
Link to this section Types
Link to this type
entity_expr()
View Source
entity_expr()
View Source
entity_expr() ::
Ecto.Adapters.Neo4j.Query.NodeExpr.t()
| Ecto.Adapters.Neo4j.Query.RelationshipExpr.t()
entity_expr() :: Ecto.Adapters.Neo4j.Query.NodeExpr.t() | Ecto.Adapters.Neo4j.Query.RelationshipExpr.t()
Link to this type
t()
View Source
t()
View Source
t() :: %Ecto.Adapters.Neo4j.Query{
batch: Ecto.Adapters.Neo4j.Query.Batch.t(),
delete: [entity_expr()],
limit: nil | integer() | atom(),
match: [entity_expr()],
merge: [Ecto.Adapters.Neo4j.Query.MergeExpr.t()],
operation: atom(),
order_by: [Ecto.Adapters.Neo4j.Query.OrderExpr.t()],
params: map(),
return: nil | Ecto.Adapters.Neo4j.Query.ReturnExpr.t(),
set: [Ecto.Adapters.Neo4j.Query.SetExpr.t()],
skip: nil | integer() | atom(),
where: nil | Ecto.Adapters.Neo4j.Condition.t()
}
t() :: %Ecto.Adapters.Neo4j.Query{ batch: Ecto.Adapters.Neo4j.Query.Batch.t(), delete: [entity_expr()], limit: nil | integer() | atom(), match: [entity_expr()], merge: [Ecto.Adapters.Neo4j.Query.MergeExpr.t()], operation: atom(), order_by: [Ecto.Adapters.Neo4j.Query.OrderExpr.t()], params: map(), return: nil | Ecto.Adapters.Neo4j.Query.ReturnExpr.t(), set: [Ecto.Adapters.Neo4j.Query.SetExpr.t()], skip: nil | integer() | atom(), where: nil | Ecto.Adapters.Neo4j.Condition.t() }
Link to this section Functions
Link to this function
batch(query, batch_opt) View Source
Adds information regarding batch query.
See Ecto.Adapters.Neo4j.batch_query4
for more info about batch queries.
Link to this function
delete(query, delete)
View Source
delete(query, delete)
View Source
delete(Ecto.Adapters.Neo4j.Query.t(), [entity_expr()]) ::
Ecto.Adapters.Neo4j.Query.t()
delete(Ecto.Adapters.Neo4j.Query.t(), [entity_expr()]) :: Ecto.Adapters.Neo4j.Query.t()
Adds DELETE data
Link to this function
limit(query, limit)
View Source
limit(query, limit)
View Source
limit(Ecto.Adapters.Neo4j.Query.t(), nil | integer()) ::
Ecto.Adapters.Neo4j.Query.t()
limit(Ecto.Adapters.Neo4j.Query.t(), nil | integer()) :: Ecto.Adapters.Neo4j.Query.t()
Adds LIMIT data
Link to this function
match(query, match)
View Source
match(query, match)
View Source
match(Ecto.Adapters.Neo4j.Query.t(), [entity_expr()]) ::
Ecto.Adapters.Neo4j.Query.t()
match(Ecto.Adapters.Neo4j.Query.t(), [entity_expr()]) :: Ecto.Adapters.Neo4j.Query.t()
Adds MATCH data
Link to this function
merge(query, merge) View Source
Adds MERGE data
Link to this function
new(operation \\ :match)
View Source
new(operation \\ :match)
View Source
new(atom()) :: Ecto.Adapters.Neo4j.Query.t()
new(atom()) :: Ecto.Adapters.Neo4j.Query.t()
Initilaize the Query struct
Link to this function
order_by(query, order_by)
View Source
order_by(query, order_by)
View Source
order_by(Ecto.Adapters.Neo4j.Query.t(), [
Ecto.Adapters.Neo4j.Query.OrderExpr.t()
]) :: Ecto.Adapters.Neo4j.Query.t()
order_by(Ecto.Adapters.Neo4j.Query.t(), [ Ecto.Adapters.Neo4j.Query.OrderExpr.t() ]) :: Ecto.Adapters.Neo4j.Query.t()
Adds ORDER BY data
Link to this function
params(query, params)
View Source
params(query, params)
View Source
params(Ecto.Adapters.Neo4j.Query.t(), map()) :: Ecto.Adapters.Neo4j.Query.t()
params(Ecto.Adapters.Neo4j.Query.t(), map()) :: Ecto.Adapters.Neo4j.Query.t()
Adds params
Link to this function
return(query, return) View Source
Adds RETLURN data
Link to this function
set(query, sets)
View Source
set(query, sets)
View Source
set(
Ecto.Adapters.Neo4j.Query.t(),
nil | [Ecto.Adapters.Neo4j.Query.SetExpr.t()]
) :: Ecto.Adapters.Neo4j.Query.t()
set( Ecto.Adapters.Neo4j.Query.t(), nil | [Ecto.Adapters.Neo4j.Query.SetExpr.t()] ) :: Ecto.Adapters.Neo4j.Query.t()
Adds SET data
Link to this function
skip(query, skip)
View Source
skip(query, skip)
View Source
skip(Ecto.Adapters.Neo4j.Query.t(), nil | integer() | atom()) ::
Ecto.Adapters.Neo4j.Query.t()
skip(Ecto.Adapters.Neo4j.Query.t(), nil | integer() | atom()) :: Ecto.Adapters.Neo4j.Query.t()
Adds SKIP data
Link to this function
to_string(bare_query)
View Source
to_string(bare_query)
View Source
to_string(Ecto.Adapters.Neo4j.Query.t()) :: {String.t(), map()}
to_string(Ecto.Adapters.Neo4j.Query.t()) :: {String.t(), map()}
Link to this function
where(query, condition)
View Source
where(query, condition)
View Source
where(Ecto.Adapters.Neo4j.Query.t(), nil | Ecto.Adapters.Neo4j.Condition.t()) ::
Ecto.Adapters.Neo4j.Query.t()
where(Ecto.Adapters.Neo4j.Query.t(), nil | Ecto.Adapters.Neo4j.Condition.t()) :: Ecto.Adapters.Neo4j.Query.t()
Adds WHERE data