我试图使用CYPHER在NEO4J上创建一个简单的图表。
以下是查询:
MERGE (nut:asset{name:'nut'})
MERGE (bolt:asset{name:'bolt'})
MATCH (nut:asset)
WITH nut,bolt
MERGE (nut:asset)-[:hasPart]->(washer:asset{name:'washer',domain:'tool'})它使我犯了一个错误
WITH is required between MERGE and MATCH (line 4, column 1 (offset: 63))
"MATCH (nut:asset)"
^当我试图将查询更改为
MERGE (nut:asset{name:'nut'})
MERGE (bolt:asset{name:'bolt'})
MERGE (nut:asset)-[:hasPart]->(washer:asset{name:'washer',domain:'tool'})它说
Can't create node `nut` with labels or properties here. The variable is already declared in this context如何在此上下文中使用合并语句。我使用了来自Neo4j 链接的教程来构造我的查询。
发布于 2017-10-30 08:06:53
第一个错误是因为在创建两个节点之后,您直接使用了MATCH。查询是连续的,但是使用带有标签的MATCH将其分解为各个部分。为了保持连续性,您必须使用WITH。
第二个错误是由于您两次使用相同的变量nut而导致的。
使用WITH,可以减少查询的基数和时间。
第一个查询可以这样编写:
MERGE (nut:asset{name:'nut'})
with nut
MERGE (bolt:asset{name:'bolt'})
with nut,bolt
MERGE (nut)-[:hasPart]->(washer:asset{name:'washer',domain:'tool'})第二个是:
MERGE (nut:asset{name:'nut'})
MERGE (bolt:asset{name:'bolt'})
MERGE (nut)-[:hasPart]->(washer:asset{name:'washer',domain:'tool'})https://stackoverflow.com/questions/47010070
复制相似问题