在关系 Neo4j 中创建节点并设置值

问题描述 投票:0回答:2

我正在尝试创建一个节点并添加一个设置值的新关系,但每次我都会收到相同的错误:

Invalid input '"': expected whitespace, comment, an identifier, UnsignedDecimalInteger, a property key name or '}' (line 6, column 3 (offset: 263))
"  "Value": "2024-02-06T11:16:02.09Z""

这是我的疑问,有人可以告诉我我做错了什么吗?如果我在代码中发送此查询,那么它会成功运行,我无法确定这有什么问题。

非常感谢。

MATCH (n:Node),(additionalDate:AdditionalDate)
WHERE (n.Id = "xxxx1111xxxx11")
AND (additionalDate.DateType = "1")
CREATE (additionalDate)-[additionalDateOf:AdditionalDateOf]->(n)
SET additionalDateOf = {
  "Value": "2024-02-06T11:16:02.09Z"
}
neo4j cypher
2个回答
0
投票

尝试这样设置:

MATCH (n:NodeA),(additionalDate:AdditionalDate)
WHERE (n.Id = "xxxx1111xxxx11")
AND (additionalDate.DateType = "1")
CREATE (additionalDate)-[additionalDateOf:AdditionalDateOf]->(n)
SET additionalDateOf.Value = "2024-02-06T11:16:02.09Z"

对于:

MERGE (n:NodeA {Id:"xxxx1111xxxx11"})
MERGE (additionalDate:AdditionalDate {DateType:"1"}) 

如果我向上面的查询添加返回,我会得到:

╒═══════════════════════════════╤═════════════════════════════════╤══════════════════════════════════════════════════════╕
│n                              │additionalDate                   │additionalDateOf                                      │
╞═══════════════════════════════╪═════════════════════════════════╪══════════════════════════════════════════════════════╡
│(:NodeA {Id: "xxxx1111xxxx11"})│(:AdditionalDate {DateType: "1"})│[:AdditionalDateOf {Value: "2024-02-06T11:16:02.09Z"}]│
└───────────────────────────────┴─────────────────────────────────┴──────────────────────────────────────────────────────┘

0
投票

正如 @nimrod-serok 所建议的,您可以使用点属性引用语法来设置

Value
additionalDateOf
属性。

或者,您可以从键中删除双引号:

MATCH (n:Node),(additionalDate:AdditionalDate)
WHERE (n.Id = "xxxx1111xxxx11")
AND (additionalDate.DateType = "1")
CREATE (additionalDate)-[additionalDateOf:AdditionalDateOf]->(n)
SET additionalDateOf = {
  Value: "2024-02-06T11:16:02.09Z"
}

您分配给关系的属性键值是一个映射,其中键是标识符。您使用的是 JSON 数据格式,其中键被指定为字符串。

作为第三个选项,您可以在

CREATE
子句中内联属性规范:

MATCH (n:Node),(additionalDate:AdditionalDate)
WHERE (n.Id = "xxxx1111xxxx11")
AND (additionalDate.DateType = "1")
CREATE (additionalDate)-[additionalDateOf:AdditionalDateOf 
                          {Value: "2024-02-06T11:16:02.09Z"}]->(n)
© www.soinside.com 2019 - 2024. All rights reserved.