问题标签 [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 回答
703 浏览

csv - 将 CSV 文件加载到在 Docker 中运行的 Neo4J

我在 Docker (Windows 10) 中运行 Neo4J。我想使用 Node 和neo4j-driver.

我的查询是(限于 5 行,用于测试目的):

无论我尝试在路径中放置什么,驱动程序都会一直在寻找file:/var/lib/neo4j/import/C:/Users/Test/largefile.csv

我试过带/不带驱动器号;尝试了本地文件并使用.//var/lib/neo4j/import尝试了不同的路径 -即使我的机器上没有这样的文件夹,驱动程序也总是在寻找文件。

是否可以从我的主机导入文件,或者我需要将它复制到 Docker 容器中,复制到该文件夹​​结构中?

0 投票
1 回答
81 浏览

python-3.x - 为什么Neo4j Bolt Driver 在shell 和IDE 之间不一致?

我看到neo4j-bolt-driver. 当我Pycharm用来运行我的代码时,它运行良好,对于单个查询,neo4j我得到以下响应:

现在,当我打包我的代码并从中创建一个.egg,然后使用终端运行脚本以获取相同数据库的相同输入时,我得到以下响应:

现在看看响应的差异,类型相同,只是keys缺少对象。

这导致AttributeError. 更糟糕的是我必须手动将数据解析成一个字典,以便我可以处理它。


副作用:


我正在寻找两个答案:

  • 螺栓驱动器中是否存在问题,或者只是我的代码从egg
  • 有没有更好的方法将无效内容解析为字典?
0 投票
2 回答
1247 浏览

python - 如何从 python 获取密码查询的执行时间?

我正在尝试比较从 python 获取 Cypher 查询的执行时间,即在 neo4j-server 上计算所需的时间(不包括输出结果所需的时间)。现在我正在使用以下代码:

有没有更好的方法来计算密码查询的执行时间?例如,在 postgresql 中有 EXPLAIN ANALYZE 语句,它还提供了执行 SQL 查询所需的时间。在 Cypher 中有 EXPLAIN 和 PROFILE 语句,但两者似乎都不返回特定时间。

我现在正在使用 neo4j-driver 连接到 neo4j,但我愿意切换到另一个库。

0 投票
2 回答
234 浏览

java - Neo4j:通过 Java API 或 Cypher 进行显式悲观锁定

有没有办法通过 Neo4J Java API 或 Cypher 手动获取特定节点集的写锁?

文档中有示例,但仅适用于嵌入式 Neo4j 版本。标准 JavaTransaction接口不包含此类方法:https ://neo4j.com/docs/api/java-driver/current/org/neo4j/driver/v1/Transaction.html

我也找不到通过 Cypher 做到这一点的方法。

0 投票
1 回答
110 浏览

neo4j - 在 Neo4j 中使用嵌套属性(带点)删除索引

我正在使用带有 Bolt 的 Neo4j 和 Java 中的 Neo4j 驱动程序。当我尝试运行以下命令时:

请注意,该属性的名称实际上是“id.id”(基本上是一个点)。

我有以下错误:

有没有办法使用驱动程序删除索引?

我正在使用 Neo4j 3.3.5 和 neo4j 驱动程序 1.6.1

我很惊讶,因为我可以毫无问题地创建索引。

谢谢

0 投票
1 回答
88 浏览

node.js - 阐明 neo4j 和 neo4j-driver 的不同行为

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

neo4j 网络客户端

但是,当我使用neo4j-driver模块在 node.js 项目中运行完全相同的命令时,它只返回三个节点,并且不包含这两个关系。

在稍微摆弄之后,我注意到要检索关系,我必须发出类似match (n)-[r]-(m) return *. 我的第一个问题是为什么会有这样的差异?本地 Web 客户端是否只是想为用户提供更多帮助?

此外,我发现返回的记录对象有点令人困惑。运行此match (n)-[r]-(m) return *命令会在 result.records 对象中返回 4 项,其中 2-2 项几乎成对相同。在简化的视图中,这是它返回的内容:

所以 result.records 对象的第 0 项和第 1 项仅在其元素的顺序上有所不同。第 2 项和第 3 项相同。

问题二是如果我想在网页上显示图表,我应该怎么做?在返回的所有不同组合中查找节点和关系的唯一 ID?

问题三:也许有更好的方法来实现我想要做的事情?

0 投票
0 回答
406 浏览

python - Neo4j - 如何在 python 中使用 neo4j-driver 在另一个查询中使用密码查询的结果

我正在使用烧瓶和 Neo4j 作为图形数据库构建一个 Web 应用程序。我正在为 python 使用官方的 neo4j-driver。有没有一种方法可以将密码查询通过另一个会话中的会话事务返回的结果(节点)用作节点。基本上,我想做一些与 WITH 语句相同但跨越会话的事情。例如 -

我希望能够在第一个语句中提取结果,然后在另一个会话中使用它来匹配 event_id。

0 投票
1 回答
815 浏览

node.js - 使用适用于 nodejs 的 Neo4j-Driver 通过 id 和参数获取节点

我正在尝试返回具有 id 的特定节点(在我的 nodejs 服务器中使用 neo4j-driver 包)。我有我正在搜索的节点的 ID。所以我使用了 run 方法中的参数,如下所示,但我没有得到任何节点。

我检查了 idUser-value 是 128,当我运行这个命令时,我得到了正确的节点。

有没有人可以使第一个命令正常工作,以便我可以获得给定 id 的节点?

谢谢

0 投票
1 回答
201 浏览

node.js - 如何用cypher和neo4j匹配左右节点

我尝试在我的项目中使用 Neo4J 图形数据库,并尝试向您解释我的问题。

我想在每个结果的右侧和左侧都有最长的路径,在 8 个节点的限制内。但我不知道图表每一端的最后一个节点

下图是一个基本示例。我的图表像链一样构建,如下所示:

我的数据库 - Neo4j 图

我的问题是找到左右节点。使用这个虚拟查询,我有重复的结果

MATCH p=((nl)<-[:PREV*0..8]-(i)-[:NEXT*0..8]->(nr)) RETURN nodes(p);

这会返回太多重复的结果。这里有一些结果样本:

最后一个结果是唯一让我感兴趣的结果。

似乎 Neo4j 在 8 个限制内返回所有可能的节点组合到左侧和右侧。

附加信息:

  • 可以有多个“中间节点”(示例中的“i”)
  • 我想要左边 8 个节点,右边 8 个或更少,但总是两边的最大节点数

是否可以使用 Cypher 执行此操作?

0 投票
0 回答
125 浏览

neo4j - neo4j 是否有一个可以刷新的写缓存?

我有一个写入我的 neo4j 数据库的应用程序。在此写入之后,另一个应用程序立即执行查询并期望先前写入的项目作为结果。

这不会发生,我的查询没有得到任何结果。

在写入和查询之间引入 100 毫秒的人为延迟会产生预期的结果,但这是不可行的。

我正在使用neo4j-driver在 TypeScript 中编写。我正在await兑现 API 向我提出的每一个承诺。我什至承诺了这个session.close功能,我也承诺了await(不确定这是否有任何作用)。

neo4j 这边是否有可能有问题的缓存?我可以以某种方式冲洗它吗?