繁体   English   中英

Cypher-Spring Neo4j-同时返回2个节点

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM