Neo4j 创建具有不同节点的唯一节点

Neo4j 创建具有不同节点的唯一节点,neo4j,cypher,Neo4j,Cypher,我正在尝试将Java包,如org.somepackage.parser和org.otherpackage.parser放入neo4j数据库。我试图通过以下密码查询来解决这个问题 MATCH (root:package {isRoot: true}) CREATE UNIQUE (root) <-[:subpackage]-(:package {name: 'org'}) <-[:subpackage]-(:package {name: 'somepackage'}) <-[:s

我正在尝试将Java包,如org.somepackage.parserorg.otherpackage.parser放入neo4j数据库。我试图通过以下密码查询来解决这个问题

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'})
MATCH(根:包{isRoot:true})
创建唯一(根)

您可以在
parser
节点中添加名为
id
的属性,并使用java
randomUUID
生成该id,或者如果您不想这样做,您可以将解析器节点重命名为

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

对这就是我解决问题的方法。但这感觉像是一个黑客;)我认为这是一种更聪明的设计方法