问题标签 [neo4j-node]

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 投票
2 回答
616 浏览

neo4j - 如何在 neo4j 中软删除功能?

在 mysql 等关系数据库中,我习惯于通过设置deleted_at来进行软删除。然后检索SELECT 只需获取行 WHERE deleted_at IS NULL

我很困惑如何在 neo4j 数据库中实现软删除。我有多种方法,但不确定哪种方法或组合会有更多优势。

我还阅读了Neo4j:使用可选关系实现软删除,但没有帮助。

  1. 只需设置节点deleted_at的属性。
  2. 删除节点标签并通过前缀“_”更改,如“Student”将变为“_Student”
  3. 删除关系并通过前缀“_”更改,如“TEACHES”将变为“_TEACHES”

在neo4j中实现软删除的最佳方式或组合或其他方式是什么?

0 投票
1 回答
1342 浏览

neo4j - Neo4J - 如何避免这个锁定问题

当我尝试同时从一个节点中删除两个不同的关系时,我得到了这个错误。

{ [Error: LockClient[402733] can't wait on resource RWLock[RELATIONSHIP(201056), hash=1039491204] since => LockClient[402733] <-[:HELD_BY]- RWLock[NODE(131064), hash=949197283] <-[:WAITING_FOR]- LockClient[402732] <-[:HELD_BY]- RWLock[RELATIONSHIP(201056), hash=1039491204]] message: 'LockClient[402733] can\'t wait on resource RWLock[RELATIONSHIP(201056), hash=1039491204] since => LockClient[402733] <-[:HELD_BY]- RWLock[NODE(131064), hash=949197283] <-[:WAITING_FOR]- LockClient[402732] <-[:HELD_BY]- RWLock[RELATIONSHIP(201056), hash=1039491204]' }

这是预期的吗?我该如何避免这种情况?

0 投票
1 回答
1836 浏览

neo4j - Neo4J 服务器卡在接近 100% CPU

在 AWS EC2 实例上运行 neo4j 2.0.1 社区版本。在一些读取请求后,Neo4J 服务器卡在接近 100% 的 CPU 上。

即使没有读取或写入,CPU 也会继续卡在接近 100% 的速度。

ubuntu 'top' 命令只显示一个消耗 CPU 的 java 进程。我该如何调试?我怎么知道 neo4j 正在做什么以使 CPU 接近 100%

更新:我不断看到下面的 GC 日志:

即使没有查询命中,我也会看到很长时间的 GC 日志。我认为 GC 正在消耗接近 100% 的 CPU(或其他东西?)。

CPU 接近 100% 时的 Java-neo4j 线程转储: https ://onedrive.live.com/redir?resid=49F6403CD7EC37D4!107&authkey=!AM_esZ8nS-iPRCQ&ithint=file%2clog

0 投票
0 回答
103 浏览

node.js - Neo4J 3.0 重叠事务

我正在将 Neo4j v3.0.6 与 neo4j-driver 1.1.0-M2 (BOLT) 一起使用,并且遇到以下行为,每次两个事务重叠时,第二个事务都会失败。这是预期的行为吗?考虑到他们也在不同的会话中并且访问不同的数据,这对我来说看起来很奇怪。

  • session1 = db.session()
  • txn1 = session1.beginTransaction()
  • session2 = db.session()
  • txn2 = session2.beginTransaction()
  • txn1.commit()
  • txn2.commit() -> 失败,签名为 126,没有其他消息
0 投票
1 回答
143 浏览

neo4j - 在图形数据库中建模递归分解结构

对于递归分解结构,建模为...更好吗?组有子组...或 b。子组 PART_OF 组 ?? .... 一些 neo4j 教程暗示同时建模(parent_of 和 child_of 示例),而 neo4j 子类型教程暗示两者都可以正常工作(通常与 PART-OF 一起使用)。

根据 neo4j 的经验,是否有实际理由选择其中一个或同时使用两者?

0 投票
2 回答
1127 浏览

javascript - Neo4j + nodejs: create node using javascript object literal

can't find whether this has been asked before or not, so bear with me.
I'm just starting to use Neo4j with a nodejs backend and the neo4j-driver driver. I wonder if it's possible to create a node with several properties without enumerating each one in the second argument to the session.run method.

Currently, this yields the following error: {code: 'Neo.ClientError.Statement.ParameterMissing', message: 'Expected a parameter named u' }, and if I change the above to:

then the error reads: { code: 'Neo.ClientError.Statement.TypeError', message: 'Property values can only be of primitive types or arrays thereof' }.

This doesn't make much sense to me, given that the refcard clearly states you can create a node using a map, like so: CREATE (n {map}); so I must obviously be getting something wrong. I hope I don't have to enumerate all a user's properties like so:

Thanks in advance

0 投票
1 回答
897 浏览

node.js - Neo4j 交易误区

当我查看交易文档时,我遇到了这个例子:

但是在上面的代码片段中,它似乎并没有改变success我的意思是它如何确定事务是否成功执行,success变量根本没有改变值。

0 投票
1 回答
1662 浏览

neo4j - Neo4j 连接多个节点之间的多个关系

我正在尝试实现此处显示的内容: 我有 2 个 CSV 文件,diease_mstr 和 Test_mstr 现在在 Test_mstr 中,我对疾病 ID 记录进行了许多测试,这意味着它们都不是唯一的。疾病 ID 指向 disease_mstr 文件。在 disease_mstr 文件中,我只有 2 个字段,ID 和 Disease_name(疾病名称是唯一的)。

现在,我正在创建 3 个带有标签的节点 1) 测试(只有“testname”属性),它将具有唯一的测试(总共 345 个唯一的测试名称)

2) Linknode(拉取整个Test_mstr文件)也从Disease_mstr文件中拉取对应disease_ID的“disease_name”

3) 疾病(提取形式 disease_mstr)文件。

之后我运行创建关系

为了获得如图所示的所需结果,我运行以下密码命令:

有人可以帮我创建另外 2 个关系,这些关系在图像中用蓝色和绿色线标记和链接?

可以在我的 google 文件夹链接中访问示例文件和图像

0 投票
0 回答
191 浏览

node.js - 什么是/如何使用 NODEjs 中的 neo4j-driver 将多个 tx.run 作为单个事务编写?

我正在尝试同步两个数据库,对于每种类型的操作,我希望它是一个完整的事务,我已经设置了一些相当基本的东西,但我不确定这是否会作为单个事务实际运行和回滚。我一直在查看文档,但 NodeJS 的文档相当稀缺。

我的示例代码:

现在在SyncElements()获取 tx 对象的函数中,它将调用tx.run(数十次。

我的问题是,这几十个tx.run电话,它们都会被视为我上面提交的主要交易的一部分吗?如果这些调用中的任何一个失败,所有使用该 tx. 对象被反转?

编辑:我的第二次尝试:

我的每一次运行都返回了这样的承诺:

接着

我将它们存储在一个数组中,然后运行:

我认为这与文档更接近?我想在我的第一次尝试中我真的没有办法回滚事务所以只是假设如果有错误它不会提交?