Redis Graph:合并现有节点

Rik*_*son 5 cypher redisgraph

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

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

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

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

Raw*_*hi 5

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

参考:合并命令GitHub 问题

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

MERGE (u:USER {name: "John"})-[:IS]->(a:AGE {name: "28"})
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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