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 之后,此答案不再相关,因为他们现在支持此类查询。
假设存在两个节点 (: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 之后,此答案不再相关,因为他们现在支持此类查询。