使用不同的节点创建UNIQUE

时间:2014-02-08 22:54:12

标签: neo4j cypher

我正在尝试将 org.somepackage.parser org.otherpackage.parser 等Java软件包放入neo4j数据库。我尝试使用以下cypher查询解决问题。

MATCH (root:package {isRoot: true})
CREATE UNIQUE (root)
<-[:subpackage]-(:package {name: 'org'})
<-[:subpackage]-(:package {name: 'somepackage'})
<-[:subpackage]-(:package {name: 'parser'})


MATCH (root:package {isRoot: true})
CREATE UNIQUE (root)
<-[:subpackage]-(:package {name: 'org'})
<-[:subpackage]-(:package {name: 'otherpackage'})
<-[:subpackage]-(:package {name: 'parser'})

使用解析器节点上方的查询只会获得与 somepackage otherpackage 的两种关系。我知道这是预期的行为,但是有没有得到2个不同的解析器节点?一个链接到 somepackage ,另一个链接到 otherpackage

1 个答案:

答案 0 :(得分:0)

您可以在id节点中添加名为parser的attrib,并使用java randomUUID生成该ID,或者如果您不想这样做,则只需重命名< / strong>您的解析器节点为

name: "org.otherpackage.parser" and  name: "org.somepackage.parser"