プロパティ名がAとBの2つのノードがあります。それぞれに複数の電話連絡先が保存されています。ユーザーAが彼の連絡先にユーザーC Neo4j関係を作る方法
ユーザBが自分の連絡先、彼KNOWS
ユーザー関係で、ユーザCを接続する方法
でユーザーCを持っている
- AとB?
まず、ユーザCをマージする必要があります。これは、
KNOWS
という名前の関係を作成することです。
プロパティ名がAとBの2つのノードがあります。それぞれに複数の電話連絡先が保存されています。ユーザーAが彼の連絡先にユーザーC Neo4j関係を作る方法
ユーザBが自分の連絡先、彼KNOWS
ユーザー関係で、ユーザCを接続する方法
でユーザーCを持っている
まず、ユーザCをマージする必要があります。これは、KNOWS
という名前の関係を作成することです。
ユーザCとユーザAとユーザBを知っている関係をどのように結びつけるのですか?
は単純に実行します。
MATCH(a {name:"A"}) // Match nodes with property name = "A" and store it in a variable
MATCH(b {name:"B"}) // Match nodes with property name = "B" and store it in b variable
MERGE (c {name:"C"}) // merge c (will be created if a node with name = "C does not exists yet")
CREATE UNIQUE (c)-[:KNOWS]->(a) // Will create :KNOWS relationship from c to a if it not exists
CREATE UNIQUE (c)-[:KNOWS]->(b) // Will create :KNOWS relationship from c to b if it not exists
あなたはまた、両方のCを作成するために、MERGEを使用することができますし、1つのステップでの関係を知っている:
MATCH (a:user {name:'A'}) MERGE (c:user {name:'C'})-[:KNOWS]->(a);
ここでは、を探しています:ユーザープロパティーのあるノード = 'A'。これが見つかった場合、結果はMERGE句に渡されます。完全なパスをに与えています。 MERGEは存在しないパスの部分を作成します。この場合、タイプのノードが作成されます。ユーザーには、という名前のプロパティが 'C'に設定されています。それはまた、CからAへのKNOWSの関係を作成します。MERGEは、与えられた既存のノードを使用します。このように、MERGEはCREATEとは異なります。なぜなら、CREATEは新しいノードaを含むすべてを作成しようとするからです。
あなたはノードCに設定する他のプロパティを持っていた場合は、ONを使用して、同時にそれらのプロパティを設定することができ、サブ句をCREATE:
MATCH (a:user {name:'A'}) MERGE (c:user {name:'C'})-[:KNOWS]->(a) ON CREATE SET c={name:'C', phone:'+1 234 5678'};
を