基于第三个节点在两个节点之间创建关系

时间:2017-09-05 20:52:34

标签: neo4j cypher

示例:

节点1(案例):

if else

节点2(文件):

CASE_ID
123

节点3(Case_to_Document):

DOCUMENT_ID
456
789
101

在此示例中,如何在Document和Case之间创建关系?我希望代表文档456,789和101的关系都与案例123相关(即存在于WITHIN - Document-WITHIN->案例中)。

谢谢!

1 个答案:

答案 0 :(得分:1)

在Case节点和3个Document节点中的每个节点之间创建唯一关系很容易,但是来自哪里的唯一ID?我假设您的意思是在关系上设置这些关系,但如果它们可以与DOCUMENT_ID一起提供在结构中,那么它应该很容易:

我们假设这些是您的查询参数:

{caseId:123, documents:[{id:456, relId:201}, {id:789, relId:202}, {id:101, relId203}]}

您的查询将类似于:

MERGE (c:Case{CASE_ID:$caseId})
UNWIND $documents as documentData
MERGE (d:Document{DOCUMENT_ID:documentData.id})
MERGE (c)<-[:WITHIN{UNIQUE_ID:documentData.relId}]-(d)