我有一个只有几个节点和关系的基本数据库。当我在 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?
问题三:也许有更好的方法来实现我想要做的事情?