Graph API¶
Programmatic API for graph operations.
Node Operations¶
Create Node¶
from qilbeedb import QilbeeDB
db = QilbeeDB("http://localhost:7474")
graph = db.graph("my_graph")
# Create node
node = graph.create_node(
labels=['User', 'Person'],
properties={'name': 'Alice', 'age': 28}
)
Read Node¶
# Get node by ID
node = graph.get_node(node_id=123)
# Get nodes by label
users = graph.get_nodes_by_label('User', limit=10)
Update Node¶
Delete Node¶
Relationship Operations¶
Create Relationship¶
# Create relationship
rel = graph.create_relationship(
start_node=123,
rel_type='KNOWS',
end_node=456,
properties={'since': '2023-01-15'}
)
Query Relationships¶
Delete Relationship¶
Cypher Queries¶
# Execute Cypher query
results = graph.query("""
MATCH (u:User)-[:KNOWS]->(f:User)
WHERE u.name = $name
RETURN f.name, f.age
""", parameters={'name': 'Alice'})
for row in results:
print(f"{row['f.name']}, {row['f.age']}")
Query Builder¶
from qilbeedb.query import QueryBuilder
# Build query programmatically
query = (QueryBuilder()
.match("(u:User)")
.where("u.age > $min_age")
.return_("u.name", "u.age")
.order_by("u.age", desc=True)
.limit(10)
)
results = graph.execute(query, {'min_age': 25})
Transactions¶
# Use transaction
with graph.transaction() as tx:
alice = tx.create_node(['User'], {'name': 'Alice'})
bob = tx.create_node(['User'], {'name': 'Bob'})
tx.create_relationship(alice, 'KNOWS', bob)
# Automatically committed
Batch Operations¶
# Batch create nodes
nodes = [
{'labels': ['User'], 'properties': {'name': f'User{i}'}}
for i in range(1000)
]
graph.batch_create_nodes(nodes)
Next Steps¶
- Learn about HTTP API
- Explore Memory API
- Use the Python SDK