5

假设存在两个节点(:USER {name: "John"})(:AGE {name: "28"})。现在,以下查询可以使用 Neo4j

MATCH (u:USER {name: "John"})
MATCH (a:AGE {name: "28"})
MERGE (u)-[:IS]->(a)

并创建IS两个节点之间的关系。在 Redis Graph 上运行相同的查询时,我收到以下错误: Syntax error at offset 22 near 'MERGE'. 有谁知道如何在 Redis Graph 上运行相同的查询?

我应该补充一点,CREATE它不起作用,MERGE因为它会创建一个(可能)已经存在的边缘的副本。

4

1 回答 1

5

目前,MERGE 仅用作独立子句,因此不能与 MATCH 或 RETURN 等其他指令结合使用。

参考:合并命令GitHub问题

你可以做这样的事情(但它会创建整个模式):

MERGE (u:USER {name: "John"})-[:IS]->(a:AGE {name: "28"})

所以我认为目前唯一的选择是执行两个单独的命令:

MATCH (u:USER {name: "John"})-[r:IS]->(a:AGE {name: "28"})
RETURN count(r)

如果此事务返回空结果,则您需要创建关系:

MATCH (u:USER {name: "John"})
MATCH (a:AGE {name: "28"})
CREATE (u)-[:IS]->(a)

编辑:2020 年 6 月 20 日之后,此答案不相关,因为它们现在支持此类查询。

于 2019-06-24T09:33:49.200 回答