我正在玩Neo4j和Cypher,但是,我遇到了一个问题,我还不能解决。让我们假设我们有一个这样的节点:name: "Joe"
然后,我将向我的数据库添加一个新的Person节点,该节点也具有name: "Joe"
属性。我希望在第一个Person Joe和新的Person Joe之间创建一个关系(并且仅在他们之间!)。到目前为止,我已经尝试了以下查询,但没有得到我想要的结果:
MATCH (p1:Person)
WHERE p1.name = "Joe"
CREATE (p2:Person{name:"Joe"})-[r:SAME_NAME]->(p1))
现在的问题是,它是一种递归地创建新节点的方法,我如何才能实现所需的查询呢?
2条答案
按热度按时间6xfqseft1#
玩得开心!
ru9i0ody2#
创建操作不关心节点是否已经存在。除非您有唯一索引,否则它将创建一个新节点。请尝试以下查询;
FOREACH类似于for循环,我们对列表进行迭代,然后创建关系。