Redis Graph:在现有节点上合并

Redis Graph: Merge on existing nodes

假设存在两个节点 (: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,因为它会创建一个(可能)已经存在的边缘的副本。

Currently, MERGE only functions as a standalone clause so it cannot be combined with other directives such as MATCH or RETURN.

参考:Merge command, GitHub issue

您可以这样做(但它会创建整个模式):

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

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

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

如果此交易 return 为空结果,那么您需要创建关系:

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

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