MERGE 和 MATCH 之间需要 WITH(第 4 行,第 1 列(偏移量:63))
WITH is required between MERGE and MATCH (line 4, column 1 (offset: 63))
我正在尝试使用 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
如何在此上下文中使用 MERGE 语句。我使用了 Neo4j link 中的教程来构造我的查询。
第一个错误是因为你创建了两个节点后,直接使用了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'})
我正在尝试使用 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
如何在此上下文中使用 MERGE 语句。我使用了 Neo4j link 中的教程来构造我的查询。
第一个错误是因为你创建了两个节点后,直接使用了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'})