Graph neo4j匹配。。。在版本2.0中创建唯一的

Graph neo4j匹配。。。在版本2.0中创建唯一的,graph,neo4j,unique,cypher,Graph,Neo4j,Unique,Cypher,我正在运行neo4j版本2.0.0(在带有JDK7的MacOSX上)。文档中有许多关于如何使用CREATE UNIQUE with MATCH的示例。我无法让它们中的任何一个正常工作,但旧的方法可以创建独特的工作,如1.9中所述(带START)。匹配查询没有抛出错误,它只是不创建任何节点,也不返回任何节点。在neo4j文档网站上,如果我单击“尝试此live”,它会工作,但我无法重新创建它 我能够正常创建节点,运行正常查询,到目前为止还没有发现任何其他奇怪的行为 这对我不起作用: MATCH (a

我正在运行neo4j版本2.0.0(在带有JDK7的MacOSX上)。文档中有许多关于如何使用CREATE UNIQUE with MATCH的示例。我无法让它们中的任何一个正常工作,但旧的方法可以创建独特的工作,如1.9中所述(带START)。匹配查询没有抛出错误,它只是不创建任何节点,也不返回任何节点。在neo4j文档网站上,如果我单击“尝试此live”,它会工作,但我无法重新创建它

我能够正常创建节点,运行正常查询,到目前为止还没有发现任何其他奇怪的行为

这对我不起作用:

MATCH (a { name: 'A' })
CREATE UNIQUE (a)-[:KNOWS]-(c:blue)
RETURN c
但这是意料之中的:

START root=node(0)
CREATE UNIQUE root-[:X]-(leaf {name:'D'} )
RETURN leaf

我做错什么了吗

您是否有一个名为'a'的节点?此查询是对节点(0)搜索的
match
的精确转换。不过,它假定您有一个节点(0)


尝试只
MATCH(a{name:'a})返回一个,如果它没有返回任何内容,这就是为什么
CREATE UNIQUE
没有创建任何内容。

谢谢。问题是我对这是如何运作的理解。我认为文档有点误导,或者我假设得太多了。“如果所描述的模式需要一个节点,但无法匹配,则将创建一个新节点。”这忽略了它仍然必须匹配匹配条件的事实。
MATCH (a)
WHERE id(a) = 0
CREATE UNIQUE (a)-[:KNOWS]->(c:blue)
RETURN c