Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 澄清neo4j和neo4j驱动器的不同行为_Node.js_Neo4j_Cypher_Neo4j Driver - Fatal编程技术网

Node.js 澄清neo4j和neo4j驱动器的不同行为

Node.js 澄清neo4j和neo4j驱动器的不同行为,node.js,neo4j,cypher,neo4j-driver,Node.js,Neo4j,Cypher,Neo4j Driver,我有一个基本的数据库,只有几个节点和关系。当我在neo4j提供的本地web客户端上运行match(n)return n命令时,它将返回数据库中的所有节点和关系,如下图所示 但是,当我在node.js项目中使用neo4j驱动程序模块运行完全相同的命令时,它只返回三个节点,两个关系都不包含 在稍微修改了一下之后,我注意到要检索关系,我必须发出类似match(n)-[r]-(m)return*。我的第一个问题是为什么会有这样的差异?本地web客户端只是想做更多的工作来帮助用户吗 此外,我发现返回的r

我有一个基本的数据库,只有几个节点和关系。当我在neo4j提供的本地web客户端上运行
match(n)return n
命令时,它将返回数据库中的所有节点和关系,如下图所示

但是,当我在node.js项目中使用neo4j驱动程序模块运行完全相同的命令时,它只返回三个节点,两个关系都不包含

在稍微修改了一下之后,我注意到要检索关系,我必须发出类似
match(n)-[r]-(m)return*
。我的第一个问题是为什么会有这样的差异?本地web客户端只是想做更多的工作来帮助用户吗

此外,我发现返回的records对象有点混乱。运行此
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


问题三:也许有更好的方法来实现我的目标?

Neo4j网络浏览器确实只是想提供帮助,如果节点之间有关系,可视化将连接节点(顺便说一句,可以关闭此行为)。但是,如果您没有要求,结果集将不会包含这些内容(因为它不应该)。查看浏览器中的其他响应选项卡(表、文本、代码)以查看实际结果集

此查询可能有助于您:

match p=(n)-[r]-(m) return p
但是,是的,您是正确的,您必须在应用程序中解包结果,以便能够自己进行解释。这是一个相当多的Neo4j用户所面临的问题。这是因为Cypher可以返回许多不同的内容(表格结果、节点、节点和关系、路径、子图等等),并且驱动程序必须提供所有这些内容

查看浏览器中的代码选项卡,了解应用程序必须使用的内容(实际使用的内容取决于所选的应用程序语言)。这不是很难,但需要一点习惯

希望这有帮助

你好,汤姆


对于此类一般查询,预期结果会加倍。Neo4j进行模式匹配,您的模式在关系上没有方向,也没有标签或关系类型。这将返回相当多的匹配,例如(jill)-[:提名](jack),但显然它也匹配(jack)-[:提名](jill)。两者都符合模式。使用DISTINCT可能会有所帮助,但您确实应该在模式中更加明确

Neo4j web浏览器确实只是试图提供帮助,如果节点之间存在关系,可视化将连接节点(顺便说一句,可以选择关闭此行为)。但是,如果您没有要求,结果集将不会包含这些内容(因为它不应该)。查看浏览器中的其他响应选项卡(表、文本、代码)以查看实际结果集

此查询可能有助于您:

match p=(n)-[r]-(m) return p
但是,是的,您是正确的,您必须在应用程序中解包结果,以便能够自己进行解释。这是一个相当多的Neo4j用户所面临的问题。这是因为Cypher可以返回许多不同的内容(表格结果、节点、节点和关系、路径、子图等等),并且驱动程序必须提供所有这些内容

查看浏览器中的代码选项卡,了解应用程序必须使用的内容(实际使用的内容取决于所选的应用程序语言)。这不是很难,但需要一点习惯

希望这有帮助

你好,汤姆


对于此类一般查询,预期结果会加倍。Neo4j进行模式匹配,您的模式在关系上没有方向,也没有标签或关系类型。这将返回相当多的匹配,例如(jill)-[:提名](jack),但显然它也匹配(jack)-[:提名](jill)。两者都符合模式。使用DISTINCT可能会有所帮助,但您确实应该在模式中更加明确

是的,当我将查询更改为匹配(n)-(r]->(m)return*(仅添加方向)时,它只返回两个结果。更清楚一点。谢谢是的,当我将查询更改为匹配(n)-(r]->(m)return*(仅添加方向)时,它只返回两个结果。更清楚一点。谢谢