当前,我们正在从消息队列中获取数据流,其中包含多个信息。其中之一是以纪元格式创建和更新某个事件的时间戳。

{"ip":"1.1.1.1","name":"abc.com","createtime":1500389719832,"updatetime":1500613413164 },{"ip":"1.1.1.2","name":"xyz.com","createtime":1500389719821,"updatetime":1500613413233}


目前,我的代码将使用队列中的消息,并将所有数据作为批量推送到Neo4j。这样会有1000行。此数据中的每个字段都作为单独的属性键存储在neo4j中。当用户从UI中选择日期时,我的目的是从该特定日期获取所有“名称”值,并仅在UI中显示这些记录。由于用户将选择MM / DD / YYYY格式的日期,因此最好的选择是仅将用户选择的日期与epoch格式的“ createtime”进行比较吗?我的想法是将“ createtime”转换为MM / DD / YYYY可读格式,并仅将日期部分存储为单独的neo4j属性(可能是newCreateTime),但是我不确定如何从整个数据流中仅转换createtime和updatetime。有人可以对此有所启发吗?

最佳答案

您可以使用APOC函数apoc.date.format设置newCreateTime属性。

例如(假设您的数据存储在带有Info标签的节点中):

MATCH (i:Info)
SET i.newCreateTime = apoc.date.format(i.createTime, 'ms', 'MM/dd/yyyy');

10-01 21:19