neo4j - 批量密码查询的意外影响
问题描述
我有一个批处理查询,我正在批量执行并传递一个$attribs
参数。
$attribs
是:
[{
attribs: [{row_attribs:{attrKey:"attrValue"}}],
match_crit:[ {matchKey:"matchVal"}]
}]
询问:
UNWIND $attribs AS attrib_dict
UNWIND attrib_dict.attribs as attrib_row
UNWIND attrib_dict.match_crit as match_row
CREATE (src:{src_ent})
SET src += attrib_row.row_attribs
WITH src, match_row
MATCH (to:Article} {{name:match_row.matchKey})
CREATE (src)-[:REL]->(to)
我分批编写 250 个,但每批都创建了 40k 个节点之类的东西(很多重复导致这个数字很大)。这怎么可能?这可能是因为我的查询中有多个 UNWIND 子句吗?我认为我在查询中处理参数的方式变得有些奇怪,但不想在没有目的或理解的情况下开始修改我的代码。
注意我通常会以更大的批次(appx 5k 个节点)写入,但遇到内存不足错误,我猜节点创建的这种爆炸是导致该错误的原因。
解决方案
推荐阅读
- php - PHP 从文件中读取对象属性值
- javascript - 在redux angular 9中使用异步管道和#select装饰器时出现无限错误
- python - 使用 API(图形 API、Youtube API)在 facebook、instagram 和 Youtube 上关注用户
- flutter - 例外:[!] 您的应用正在使用不受支持的 Gradle 项目
- sql - 从 SQL Server 执行多个 Oracle 11g 函数
- git - git push 失败,因为没有要求登录令牌
- c# - ASP.NET Core Runtime deploymenet 证书信任
- google-drive-api - Google 数据工作室报告:获取页面 ID
- python - 在 VS shell 中仍然无法识别 python cmd
- php - PHP通过3个函数级联(传递)后续返回