【发布时间】:2018-05-30 16:05:44
【问题描述】:
我有一个只有几个节点和关系的基本数据库。当我在 Neo4j 提供的本地 Web 客户端上运行 match (n) return n 命令时,它会返回数据库中的所有节点和关系,如下图所示。
但是,当我使用 neo4j-driver 模块在 node.js 项目中运行完全相同的命令时,它只返回三个节点,并且不包括这两个关系。
在稍微摆弄之后,我注意到要检索关系,我必须发出类似match (n)-[r]-(m) return * 的内容。我的第一个问题是为什么会有这样的差异?本地 Web 客户端是否只是想为用户提供更多帮助?
此外,我发现返回的记录对象有点令人困惑。运行此match (n)-[r]-(m) return * 命令会在 result.records 对象中返回 4 项,其中 2-2 项几乎成对相同。在简化的视图中,这就是它返回的内容:
item 0: [Jack node, Jill node, Jack -> Jill relationship]
item 1: [Jill node, Jack node, Jack -> Jill relationship]
item 2: [George node, Jill node, George -> Jill relationship]
item 3: [Jill node, George node, George -> Jill relationship]
因此 result.records 对象的第 0 项和第 1 项仅在其元素的顺序上有所不同。第 2 项和第 3 项相同。
如果我想在网页上显示图表,我应该怎么做?在返回的所有不同组合中查找节点和关系的唯一 ID?
问题三:也许有更好的方法来实现我想要做的事情?
【问题讨论】:
标签: node.js neo4j cypher neo4j-driver