graphcast.db.arango.query
¶
ArangoDB query utilities for graph operations.
This module provides utility functions for executing and profiling AQL queries in ArangoDB. It includes functions for basic query execution, query profiling, and field fetching operations.
Key Functions
- basic_query: Execute a basic AQL query with configurable parameters
- profile_query: Profile query execution and save results
- fetch_fields_query: Generate and execute field-fetching queries
Example
cursor = basic_query("FOR doc IN users RETURN doc", db_name="mydb") profile_query("FOR doc IN users RETURN doc", nq=1, profile_times=3, fpath=".")
basic_query(query, port=8529, hostname='127.0.0.1', cred_name='root', cred_pass='123', db_name='_system', profile=False, batch_size=10000, bind_vars=None)
¶
Execute a basic AQL query in ArangoDB.
This function provides a simple interface for executing AQL queries with configurable connection parameters and query options.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
query
|
AQL query string to execute |
required | |
port
|
ArangoDB server port |
8529
|
|
hostname
|
ArangoDB server hostname |
'127.0.0.1'
|
|
cred_name
|
Database username |
'root'
|
|
cred_pass
|
Database password |
'123'
|
|
db_name
|
Database name |
'_system'
|
|
profile
|
Whether to enable query profiling |
False
|
|
batch_size
|
Size of result batches |
10000
|
|
bind_vars
|
Query bind variables |
None
|
Returns:
Name | Type | Description |
---|---|---|
Cursor |
ArangoDB cursor for the query results |
Source code in graphcast/db/arango/query.py
fetch_fields_query(collection_name, docs, match_keys, keep_keys, filters=None)
¶
Generate and execute a field-fetching AQL query.
This function generates an AQL query to fetch specific fields from documents that match the given criteria. It supports filtering and field projection.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
collection_name
|
Collection to query |
required | |
docs
|
List of documents to match against |
required | |
match_keys
|
Keys to use for matching documents |
required | |
keep_keys
|
Keys to return in the result |
required | |
filters
|
list | dict | None
|
Additional query filters |
None
|
Returns:
Name | Type | Description |
---|---|---|
str |
Generated AQL query string |
Example
query = fetch_fields_query( ... "users", ... [{"email": "user@example.com"}], ... ["email"], ... ["name", "age"] ... )
Source code in graphcast/db/arango/query.py
profile_query(query, nq, profile_times, fpath, limit=None, **kwargs)
¶
Profile AQL query execution and save results.
This function executes a query multiple times with profiling enabled and saves both the profiling results and query results to files.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
query
|
AQL query string to profile |
required | |
nq
|
Query number for file naming |
required | |
profile_times
|
Number of times to profile the query |
required | |
fpath
|
Path to save results |
required | |
limit
|
Optional limit on query results |
None
|
|
**kwargs
|
Additional query parameters passed to basic_query |
{}
|
Note
Results are saved in two formats: - Profiling results: query{nq}profile{limit}.json - Query results: query{nq}_result{limit}_batch.json.gz