我正在使用neo4j REST来创建节点和关系。我指的是以下文件。
https://neo4j.com/docs/http-api/3.5/actions/
我所处理的节点具有动态属性。因此,我使用以下带有参数的有效负载来创建节点。
{
"statements" : [ {
"statement" : "CREATE (n:Person $props) RETURN n",
"parameters" : {
"props" : {
"name" : "My Node",
"dob" : "datetime('20211229T153000')",
"age": 55,
"awsome": true
}
}
} ]
}
这完全适用于字符串、整数、布尔数据类型。然而,我需要使用日期时间数据类型的“道布”。如果我在双引号中使用datetime函数(如上面的示例所示),neo4j将其视为字符串值,而不存储为datatime数据类型。有什么解决办法吗?
发布于 2022-03-04 13:47:11
不能将非文字值放入json数据(props)中。但是,您可以更改cypher语句(create)以更新节点,并将道布设置为日期时间字段。但是首先,您需要将该字符串转换为datetime。
{
"statements" : [ {
"statement" : "CREATE (n:Person $props) SET n.dob = datetime({epochSeconds:apoc.date.parse(replace('20211229T153000','T', ' '),'s', 'yyyyMMDD HHmmss')}) RETURN n",
"parameters" : {
"props" : {
"name" : "My Node",
"age": 55,
"awsome": true
}
}
} ]
}
我把“T”替换成空间,这样就可以被解析了。然后将其转换为纪元秒,以便datetime能够正确地转换它。我在本地的neo4j中测试了它,所以它也适用于您。
结果:
https://stackoverflow.com/questions/71354650
复制