0
4

1 回答 1

0

第一个问题是您正在属性图中构建属性图。这是可能的,但很尴尬,并不总是一个好的选择。

你的例子: http ://console.neo4j.org/r/evl77k

如果理解正确,您希望能够更改值节点并重新使用相同的属性节点,对吗?

问题在于,在您的第二个查询中,您要求 Cypher 查找具有与图中已有属性不同的属性的值节点。Cypher 找不到这样的节点,因此为您创建了一个。然后它会尝试从新创建的节点中找到传出的 ATTRIBUTE 关系,当然它没有找到任何关系。所以它为你创造了一个新的关系和属性。

如果您想继续使用相同的属性节点,您只需从值节点中省略属性值,如下所示:

START  o=node(0) 
CREATE UNIQUE o-[:VALUE]->(v)-[:ATTRIBUTE]->(a {name:'Colour'}) 
SET    v.value = 'Green' 
RETURN v

这将找到您的颜色属性节点,然后为您设置属性,而不是每次都创建新路径。

说得通?

安德烈斯

于 2012-11-28T11:25:32.413 回答