[英]Cypher-Spring Neo4j - Returning 2 nodes on the same time
嗨,我有以下情况:
动作1 : 从 pointA 到 pointD
动作2 : 从 pointA 到 pointB
动作3 : 从 pointA 到 pointC
动作4 : 从 pointC 到 pointD
动作5 : 从 pointB 到 pointD
我想从pointA转到pointD,并且需要返回需要遵循的路径(MOVE):
我只是做这个查询:
开始 f = node(1),t = node(2)
匹配 f <-[r1:FROM] -move1- [r2:TO]->点<-[r3:FROM] -move2- [r4:TO]-> t
RETURN move1,move2
它返回:
_________________
| NODE | NODE |
|--------|--------|
| Move 2 | Move 5 |
| Move 3 | Move 4 |
|_________________|
我喜欢退货,但有几点说失败了
1st)错过了MOVE 1 *如果没有其他方法,我可以建立另一个查询
2)我不知道如何使用它返回2个节点,如果它返回节点列表,我可以在下面的代码,但是如果它在相同的位置返回Node(移动2)和Node(移动5)时间我该如何处理这种情况?
@Query("f=node({id}) MATCH f<-[r1:FROM]-move1")
Iterable<Move> moves (@Param("id")Long id);
这是我的控制台与我的问题:
http://console.neo4j.org/?id=ln3w9c
有人可以建议吗?
谢谢
我想您需要找到所有可以将您从A点带到B点的MOVES。如果是这种情况,下面是查询
MATCH p=a-[:MOVE_TO*]->b
WHERE a.name='A' AND b.name='D'
RETURN p
您可以通过转到控制台进行测试。 (我已经为您设置了测试数据)。 以下是我使用过的Cypher设置
CREATE (pointA { name:'A'})
CREATE (pointB { name:'B'})
CREATE (pointC { name:'C'})
CREATE (pointD { name:'D'})
CREATE pointA-[:MOVE_TO]->pointD
CREATE pointA-[:MOVE_TO]->pointB
CREATE pointA-[:MOVE_TO]->pointC
CREATE pointC-[:MOVE_TO]->pointD
CREATE pointB-[:MOVE_TO]->pointD
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.