问题标签 [neo4j-driver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1179 浏览

java - Neo4J 连接池在应用程序启动后关闭

我在 Docker compose 环境中运行我的应用程序和 Neo4j 4。启动我的应用程序后,我收到一些奇怪的日志,表明连接池正在关闭与 DB(Closing connection pool towards graphdb(172.21.0.4):7687)的连接,之后neo4jClient无法查询 DB(下面的日志)。这种行为的原因是什么?

顺便提一句。我创建了 Spring Health Check ( driver.verifyConnectivity()),但它总是返回OK(没有抛出错误)。

有任何想法吗?

码头工人组成:

完整日志:

0 投票
1 回答
22 浏览

python - 使用neo4j-driver从python中的节点创建几种相同的关系类型

我在尝试使用 python 的 neo4j-driver 从密码脚本批量加载数据时遇到了这个问题。假设我有一个节点 X,我应该能够执行以下操作:

(X)-[:IS_FRIENDS]->(Y)

(X)-[:IS_FRIENDS]->(Z)

即有多个来自一个节点的相同关系类型。但是当我尝试运行一个脚本(~5k 插入,逐行)时,它会运行,但它不允许每个节点有多个相同的关系类型。如果我将密码查询直接运行到图中,这不是问题。我还发现这个(https://www.lyonwj.com/LazyWebCypher/)没有这个问题,但我需要让脚本通过python运行。该图最终丢失了 ~1k 关系。

有问题的代码:

0 投票
1 回答
77 浏览

neo4j - `BoltStatementResultSummary` 中的 `result_available_after` 和 `result_consumed_after` 有什么区别?如何测量查询执行时间?

我尝试从这里的文档中理解,引用文档

result_available_after = None 服务器获得结果所需的时间。

result_consumed_after = None 服务器消耗结果所用的时间。

我仍然不明白实际的区别。如果我想扩展程序并找到查询的执行时间,我应该考虑哪一个。如果我再次运行相同的查询,为什么result_available_after会变成这样?0 ms是因为缓存吗?我尝试按照此处dbms.memory.pagecache.size=1M的建议更改设置,但没有奏效。如何仅测量查询的执行时间?

我正在使用 Neo4j 4.0 和 neo4j python 驱动程序进行查询。

0 投票
1 回答
301 浏览

c# - Neo4j Driver C# 展开对象列表

我正在寻找如何将对象列表(在内存中)展开到 Neo4j 4.0 中。以下是我之前使用 Neo4jClient nuget 的内容,但我不得不改用 Neo4j.Driver nuget。

Neo4jClient(旧)

Neo4j 驱动程序(到目前为止完成)

0 投票
0 回答
768 浏览

node.js - Neo4jError:从事务中运行或使用不同的会话

我升级了 Neo4j (3.?.? → 4.0.3) 和 neo4j-javascript-driver (1.7.6 → 4.0.2)。

在没有任何代码更改的情况下,我的 Node 应用程序现在获得了以下功能:Neo4jError: Queries cannot be run directly on a session with an open transaction; either run from within the transaction or use a different session.

我正在使用的是很多这些:

据我所知session.run,将打开一个事务,执行语句并提交。之后不应有未结交易。我试图用一个小测试用例来重现,但没有运气。而且上面的文档neo4j-javascript-driver不是很有帮助。正如文档中所说:“详细文档尚不可用”

关于导致错误的任何想法?

0 投票
1 回答
259 浏览

c# - neo4j c#获取所有数据

我尝试通过 neo4j 驱动程序(https://github.com/neo4j/neo4j-dotnet-driver)从我的 neo4j 数据库中获取所有数据,但我遇到了问题,因为 IResultCursor 结果只有没有边缘的节点。我的代码:

毕竟列表“记录”只有节点。最后我想问你,我怎样才能得到查询执行时间?谢谢!

0 投票
1 回答
60 浏览

javascript - neo4j Javascript API:创建参数

我正在尝试从 Javascript 应用程序创建参数

但以下代码不起作用:

我在浏览器中收到以下错误:

我仔细检查了 json_table_definition 参数中的值,这很好来自 neo4j 的相同命令

0 投票
0 回答
454 浏览

node.js - Neo4j - Neo4jError:连接被服务器关闭

我按照以下说明创建了一个带有 neo4j 的谷歌云 VM 实例: https ://neo4j.com/docs/operations-manual/current/cloud-deployments/neo4j-gcp/single-instance-vm/

浏览器 Db 看起来不错:我可以从浏览器查看和操作。

问题是在尝试使用 neo4j-driver npm 从 nodejs 连接 neo4j 时。

我不断收到此错误:

UnhandledPromiseRejectionWarning: Neo4jError: Connection was closed by server

这是代码:

代码取自此链接:https ://neo4j.com/developer/javascript/

我运行这个命令:gcloud compute ssh my-neo4j-instance在 GCP shell 中,希望添加 ssh 可以解决问题,但它没有。

将驱动程序加密选项更改为 false 也无济于事。

控制台记录错误打印:

我错过了什么?

编辑1:

我查看了谷歌云日志。我看到的只是虚拟机启动和停止的日志。

另外,我修复了主文件中异步函数调用的代码。所以而不是

我试过这个:

仍然不好,仍然:Neo4jError:连接已被服务器关闭。我也在 neo4j 博客中问过,但没有得到任何答案。

编辑2:

我在另一个堆栈溢出帖子中看到了我的问题。答案是通过更改密码来完成对 neo4j 的记录。但我已经这样做了......我也加入了 neo4j 松弛组,但仍然没有得到答案。

0 投票
1 回答
1255 浏览

node.js - 具有多个数据库的 Neo4j 4.0 中的路由问题

我用 neo4j 4.0 创建了一个 neo4j 和 graphql 应用程序。在我的应用程序中,我使用了两个 neo4j 数据库。这些实例在我的 PC 上的 docker 容器中运行。但是当我尝试使用 graphql Playground 运行查询时,graphql 服务器会出现以下错误。

“无法执行发现。没有可用的路由服务器。已知路由表:RoutingTable[database=default database, expirationTime=0, currentTime=1592037819743, routers=[], reader=[], writers=[]]”

我创建了neo4j驱动程序实例和会话实例如下

我找不到任何方法来解决这个问题。有人可以帮我解决这个问题吗?谢谢你。

0 投票
0 回答
99 浏览

java - 将 Neo4J Java 驱动程序 4.0.2 与期货一起使用会产生错误:NOT PART OF CHAIN,DynamicRecord 未使用

我正在将 Java 项目从 Java 8 (1.8.0_222) + Neo4J 驱动程序版本 1.3.1 升级到 Java 11.0.2 + Neo4J 驱动程序版本 4.0.2。在进行必要的更改时,我遇到了以前没有的问题。

我正在使用期货来计算自定义过程中节点列表的得分值。此评分操作需要在可调用方法中多次从数据库中获取节点的关系和邻居。在整个过程测试的不同时间点,我收到以下两个错误。这会导致一些期货失败,返回的结果比预期的要少。

生成此错误的代码适用于 Java 8 + Neo4J 驱动程序版本 1.3.1。此外,当使用 Java 11.0.2 + Neo4J 驱动程序版本 4.0.2 时,分数计算也给出了预期的结果,但仅在同步调用时,而不使用期货。当异步调用时,它会产生意外的行为,通常会导致测试失败并输出不同的结果。

我在手工制作的 20 节点测试数据库上运行代码,并且没有执行任何插入、更新或删除操作,因此我可以排除数据损坏的可能性。同步调用不是一种选择,因为需要快速获得这些结果。

如果有人知道什么会产生这个问题以及我能做些什么来解决它,请告诉我。

遇到的两个堆栈跟踪是: