graphcast.db.arango.util
¶
ArangoDB utility functions for graph operations.
This module provides utility functions for working with ArangoDB graphs and queries. It includes functions for edge definition, filter rendering, and query generation.
Key Functions
- define_extra_edges: Generate queries for creating derived edges
- render_filters: Convert filter expressions to AQL filter clauses
Example
query = define_extra_edges(edge_config) filter_clause = render_filters({"field": "value"}, doc_name="d")
define_extra_edges(g)
¶
Generate AQL query for creating derived edges.
This function creates a query to generate edges from source to target vertices through an intermediate vertex, copying properties from the intermediate vertex to the new edge.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
g
|
Edge
|
Edge configuration containing source, target, and intermediate vertex information |
required |
Returns:
Name | Type | Description |
---|---|---|
str |
AQL query string for creating the derived edges |
Example
edge = Edge(source="user", target="post", by="comment") query = define_extra_edges(edge)
Generates query to create user->post edges through comments¶
Source code in graphcast/db/arango/util.py
render_filters(filters=None, doc_name='d')
¶
Convert filter expressions to AQL filter clauses.
This function converts filter expressions into AQL filter clauses that can be used in queries. It supports various filter types and formats.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
filters
|
None | list | dict | Clause
|
Filter expression to convert |
None
|
doc_name
|
Name of the document variable in the query |
'd'
|
Returns:
Name | Type | Description |
---|---|---|
str |
str
|
AQL filter clause string |
Example
filters = {"field": "value", "age": {"$gt": 18}} clause = render_filters(filters, doc_name="user")
Returns: "FILTER user.field == 'value' && user.age > 18"¶