如何在neo4j中搜索连接到特定顶级节点的所有节点和关系

时间:2018-07-27 17:27:57

标签: java neo4j neo4j-browser

我已经开始使用neo4j,并且neo4j数据库中有几种图形版本(唯一更改的是顶部节点的时间戳)。

我想知道如何仅与该节点建立关系。我目前使用这个:

data () {
  return {
    pacientes: this.$store.state.pacientes
    }
  },

但这仅显示所有这些。我知道我必须更改n = node(*),但我不知道要做什么。 (顶部节点的名称是:Info),所以也许像

"START n=node(*) MATCH (n)-[r]->(m) RETURN n,r,m;"

但是那只会给我与那个节点的关系...而我需要整个图

1 个答案:

答案 0 :(得分:0)

执行以下操作:

MATCH (n:Info)-[r]->(m)
WHERE n.timeStamp = '20/04/2018'
RETURN n, r, m;

为了更快地访问顶部节点,您还应该在:Info(timeStamp)上创建一个index

CREATE INDEX ON :Info(timeStamp);

[已更新]

要使所有关系和节点都到达深度2,可以执行以下操作:

MATCH (n:Info)-[r1]->(m1)-[r2]->(m2)
WHERE n.timeStamp = '20/04/2018'
RETURN n, r1, m1, r2, m2;

要使所有关系和节点达到任意深度(例如5),您可以执行此操作(每个返回的path都是从n到子节点的匹配路径之一) ):

MATCH path=(n:Info)-[r*..5]->(m)
WHERE n.timeStamp = '20/04/2018'
RETURN path;

您也可以只使用[r*]进行无限制的可变长度搜索,但这可能会导致服务器内存不足或完成时间过长。