neo4j 什么是密码脚本中的收集/配对错误?

qxgroojn  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(134)

我写了一个有缺陷的密码脚本,但我找不到实际的问题。

以下是脚本的关键部分:
:begin
:param measured => 'heat';
:param vals => [
    {d: datetime({year: 2022, month: 1, day: 1, hour: 4}), v: 47980},
    {d: datetime({year: 2022, month: 2, day: 1, hour: 4}), v: 50840},
    {d: datetime({year: 2022, month: 3, day: 1, hour: 4}), v: 53190}];
MATCH (i:Installation:HeatPump {name: "Demoanlage"})--(m:MeasurementSite {measuredObj: $measured})--(me:Meter)
    WHERE ID(i) = $hpId WITH me UNWIND $vals as val
        MERGE (me)-[:MEASURED_MANUALLY {createdAt: datetime.transaction()}]->
            (v:Val {d: val.d, v: val.v}) RETURN v;
:commit
还有一个:begin :commit块,这可能也是一个问题。
运行此脚本时,得到以下输出:
// using a cypher shell 
sdptest@neo4j> :source /home/myname/path/to/cypher-scripts/data_imports/add_demo_hp_vals.cypher;
org/neo4j/internal/helpers/collection/Pair // this is in red, kind of error message
sdptest@neo4j# // note the hash instead of the 'greater than' sign

为了使问题更清楚:我没有得到org/neo4j/internal/helpers/collection/Pair'error',我不明白为什么哈希突然出现(看起来像一个普通linux shell中的root用户)?
谷歌搜索也无济于事。
(版本:Neo4j 4.4.9,* 密码外壳 * 相同)。

编辑

是否不允许在脚本化事务(:begin :commit)中添加参数?因为查询对我来说似乎没有问题。

ha5z0ras

ha5z0ras1#

这可能是瞎猜的,但我认为您在下面的代码片段中遗漏了一个参数$hpId

:begin
:param measured => 'heat';
:param vals => [
    {d: datetime({year: 2022, month: 1, day: 1, hour: 4}), v: 47980},
    {d: datetime({year: 2022, month: 2, day: 1, hour: 4}), v: 50840},
    {d: datetime({year: 2022, month: 3, day: 1, hour: 4}), v: 53190}];
MATCH (i:Installation:HeatPump {name: "Demoanlage"})--(m:MeasurementSite {measuredObj: $measured})--(me:Meter)
    WHERE ID(i) = $hpId WITH me UNWIND $vals as val
        MERGE (me)-[:MEASURED_MANUALLY {createdAt: datetime.transaction()}]->
            (v:Val {d: val.d, v: val.v}) RETURN v;
:commit

请在之后尝试,并为其提供值。

t9eec4r0

t9eec4r02#

这是一种通过cypher-shell执行脚本的替代方法。将其保存到一个文件中,然后通过cypher-shell命令运行该文件的内容。
从bash终端; 1)创建文件(vi文件)2)复制/粘贴/保存你的代码3)然后通过bash命令运行下面的命令。它将传递文件的内容并将其交给cypher-shell执行。

cat file | cypher-shell -u neo4j -p <neo4j_password> --format plain

相关问题