如何在FalkorDb中动态修改返回路径的指定边属性值?
FalkorDb 路径属性动态替换查询问题
我正在使用FalkorDb 4.0.5(Redis Graph的停止维护分叉项目),以下是我的简化测试案例:
GRAPH.QUERY g // 创建4个节点: "CREATE (w:Work{name:'Work'}), (a:City{name:'A'}), (b:City{name:'B'}), (c:City{name:'C'}), // 创建带有`x`属性的"Road"边: (w)-[r0:Road{x:0}]->(a), (a)-[r1:Road{x:1}]->(b), (b)-[r2:Road{x:2}]->(c), // 添加同样带有`x`属性的"Accom"边: (a)-[a1:Accom{x:10}]->(h1:Hotel{name:'Hilton'}), (a)-[a2:Accom{x:11}]->(h2:Hotel{name:'Marriot'}), (c)-[a3:Accom{x:12}]->(h3:Hotel{name:'Marriot'}) RETURN w,a,b,c,r0,r1,r2,a1,h1,a2,h2,a3,h3"
原始Road路径为:
(Work)-[x:0]-(A)-[x:1]-(B)-[x:2]-(C)
我需要编写查询语句,为每个连接到A节点的Hotel生成一条从Work到C的路径,路径中对应位置的Road边x属性要替换为关联Accom边的x值,示例如下:
Hilton对应的路径: (Work)-[x:10]-(A)-[x:1]-(B)-[x:2]-(C) Marriot对应的路径: (Work)-[x:11]-(A)-[x:1]-(B)-[x:12]-(C) {其他连接到A的Hotel同理}
目前仅查询Road边的语句为:
GRAPH.QUERY g "MATCH path=(p)-[r:Road*]->(c) RETURN path"
该语句返回原始Road路径,但如何编写查询才能得到上述动态修改后的路径?是否需要先执行以下查询获取所有数据,再在Java/Quarkus应用中处理?
GRAPH.QUERY g "MATCH path=(p)-[r]->(c) RETURN path"
执行结果:
1) 1) "[(0), [0], (1)]" 2) 1) "[(1), [1], (2)]" 3) 1) "[(1), [3], (4)]" 4) 1) "[(1), [4], (5)]" 5) 1) "[(2), [2], (3)]" 6) 1) "[(3), [5], (6)]"
内容的提问来源于stack exchange,提问作者Murrah
相关产品推荐
相关产品推荐

