neo4j:如何查询子图

时间:2014-04-14 02:53:41

标签: neo4j cypher

我想从neo4j数据库中选择一个子图(S)并在S上使用另一个查询来查找是否连接了两个给定节点。有没有办法在neo4j中编写查询?我使用node.js和Cypher。 编辑: 我做了类似的事情,例如:

Match (u:User)-[:adds]->(y:Paper)-[:consistsOf]->(e:L2)-[]->(m:L3)
where u.username = 'test'
MATCH p=(m:L3)-[r:gives*1..4]->(n:L3)
...

由于

1 个答案:

答案 0 :(得分:6)

在您的示例中,您可以使用WITH子句连接2个MATCH语句,如下所示(清理一下):

MATCH (u:User {username:'test'})-[:adds]->(y:Paper)-[:consistsOf]->(e:L2)-->(m:L3)
WITH m
MATCH p=(m)-[r:gives*1..4]->(n:L3)
...

WITH子句与RETURN类似,不同之处在于它的目的是将值从一个查询传递到下一个查询。在这种情况下,只有'm'被传递,所以第二个MATCH不会知道'你','y'或'e'。