Neo4j:如何从路径中的节点获取其他节点?

时间:2016-11-11 18:05:41

标签: neo4j

我在链中有节点,如下所示:

MATCH chain=(start :n {height:100})-[:chain*4]->(end :n)
RETURN chain

我可以使用此密码查询获取这些节点:

(n)-[:single]->(o)
 |
(n)-[:single]->(o)
 |
(n)-[:single]->(o)
 |
(n)-[:single]->(o)
 |
(n)-[:single]->(o)

但是,此链中的每个节点也都有一个具有特定关系的节点,如下所示:

(n)

我想返回每个(o),以及 Stripe.card.createToken({ number: $('#cc-number').val(), cvc: $('#cc-cvc').val(), exp_month: $('#cc-exp').val().substr(0, 2), exp_year: $('#cc-exp').val().substr(3, 2), name: $('#cc-name').val() }, stripeResponseHandler); 即将退出。

是否可以在一个密码查询中执行此操作?

2 个答案:

答案 0 :(得分:1)

不应该是一个问题,但如果我们在路径上不匹配,但是获取链中的所有节点(以及每个节点都关闭),则会更容易。

MATCH (start :n {height:100})-[rels:chain*0..4]->(chainlink :n)-[:single]->(o)
RETURN chainlink, o
ORDER BY SIZE(rels)

答案 1 :(得分:0)

好吧,使用WITH(chain)UNWIND似乎可以解决问题:

MATCH chain=(start :n {height:100})-[:chain*4]->(end :n)
WITH NODES(chain) AS nodes
UNWIND nodes as node
OPTIONAL MATCH (node)-[:single]->(o :o)
RETURN nodes, COLLECT(o) as os
相关问题