Create Edges using AddE
Create connections between nodes in your graph.
AddE<Type>::From(v1)::To(v2)
AddE<Type>({properties})::From(v1)::To(v2)
When using the SDKs or curling the endpoint, the query name must match what is defined in the queries.hx
file exactly.
Example 1: Creating a simple follows relationship
QUERY CreateRelationships (user1_id: ID, user2_id: ID) =>
follows <- AddE<Follows>::From(user1_id)::To(user2_id)
RETURN follows
QUERY CreateUser (name: String, age: U8, email: String) =>
user <- AddN<User>({
name: name,
age: age,
email: email
})
RETURN user
Heres how to run the query using the SDKs or curl
from helix.client import Client
client = Client(local=True, port=6969)
alice_id = client.query("CreateUser", {
"name": "Alice",
"age": 25,
"email": "alice@example.com",
})[0]["user"]["id"]
bob_id = client.query("CreateUser", {
"name": "Bob",
"age": 28,
"email": "bob@example.com",
})[0]["user"]["id"]
print(client.query("CreateRelationships", {
"user1_id": alice_id,
"user2_id": bob_id,
}))
Example 2: Creating a detailed friendship with properties
QUERY CreateFriendship (user1_id: ID, user2_id: ID) =>
friendship <- AddE<Friends>({
since: "2024-01-15",
strength: 0.85
})::From(user1_id)::To(user2_id)
RETURN friendship
QUERY CreateUser (name: String, age: U8, email: String) =>
user <- AddN<User>({
name: name,
age: age,
email: email
})
RETURN user
Heres how to run the query using the SDKs or curl
from helix.client import Client
client = Client(local=True, port=6969)
user1_id = client.query("CreateUser", {
"name": "Charlie",
"age": 31,
"email": "charlie@example.com",
})[0]["user"]["id"]
user2_id = client.query("CreateUser", {
"name": "Dana",
"age": 29,
"email": "dana@example.com",
})[0]["user"]["id"]
print(client.query("CreateFriendship", {
"user1_id": user1_id,
"user2_id": user2_id,
}))
Example 3: Traversal Example
QUERY CreateRelationships (user1_id: ID, user2_name: String) =>
user2 <- N<User>::WHERE(_::{name}::EQ(user2_name))
follows <- AddE<Follows>::From(user1_id)::To(user2)
RETURN follows
QUERY CreateUser (name: String, age: U8, email: String) =>
user <- AddN<User>({
name: name,
age: age,
email: email
})
RETURN user
Heres how to run the query using the SDKs or curl
from helix.client import Client
client = Client(local=True, port=6969)
user1 = client.query("CreateUser", {
"name": "Eve",
"age": 33,
"email": "eve@example.com",
})
user1_id = user1[0]["user"]["id"]
client.query("CreateUser", {
"name": "Frank",
"age": 35,
"email": "frank@example.com",
})
print(client.query("CreateRelationships", {
"user1_id": user1_id,
"user2_name": "Frank",
}))