2016-01-15 179 views

回答

0

用户合并而不是创建关系时创建。

MERGE (Product)-[:listed_under_category]->(level3) 
MERGE (level3)-[:child_of]->(level2) 
0

MERGE子句也避免了重复关系。

0

嘿,我想混合起来,但我需要更多的信息。是合并,合并整个声明。所以如果他没有为整个陈述找到一个“匹配”,数据库就会“创建”整个陈述。

所以,当你输入像合并(一) - [] - >(二) - [] - >(Q) 如果你已经有(一) - [] - >(B)

(a) - [] - >(b) - [] - >(q),(a) - [] - >(b) - [] - > ) - [] - >(b)

但如果键入合并的(a) - [] - >(b)中合并(b) - [] - >(q)

,你知道你有节点。如果没有关系,Neo4j合并将创建关系。并且如果存在关系则匹配

0

如果我理解你的问题,CREATE UNIQUE可能是你正在寻找的解决方案。例如:

create (a:Ex {name: 'A'})-[r:inside]->(b:Ex {name: 'B'}) return a, b, r 

设置您的原始(a) - [] - >(b)关系。然后扩大你提议的方式的关系....

match (a)-[:inside]->(b) where a.name = 'A' and b.name = 'B' 
create unique (a)-[:inside]->(b)-[:inside]->(q:Ex {name: 'Q'}) 
return a, b, q 

CREATE UNIQUE也适用,如果关系是不同的:

match (a)-[:inside]->(b) where a.name = 'A' and b.name = 'B' 
create unique (a)-[:inside]->(b)-[:under]->(q:Ex {name: 'Q'}) 
return a, b, q 
相关问题