neo4j中没有标题的CSV文件

时间:2017-10-27 14:30:37

标签: csv neo4j timestamp cypher

我有一个CSV文件,其格式类似于下面的

1,2,3,4,5,6
7,8,9,1,2,3
4,5,6,7,8,9
1,2,3,4,5,6
7,8,9,1,2,3
4,5,6,7,8,9

然后我使用了以下Cypher查询

CREATE CONSTRAINT ON (t:Timestamp) ASSERT t.date IS UNIQUE;

LOAD CSV FROM "file:///example.csv" AS line
MERGE (t:Timestamp) ON CREATE SET t.date: timestamp(), data:split(line,",")})

所以基本上我想将CSV文件中的数据存储为数组列表 应出现以下json格式

{
  "date" = "271020170000"
  "data" = [[1,2,3,4,5,6],
            [7,8,9,1,2,3],
            [4,5,6,7,8,9],
            [1,2,3,4,5,6],
            [7,8,9,1,2,3],
            [4,5,6,7,8,9]]
}

还有一个问题是关于时间戳,它给了我错误。我想在上传新数据时显示时间戳。

我的Cypher代码中的任何更改都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

这根本不起作用 - 如果你试图在neo4j中存储一个多维数组,你最终会看到这个:

  

包含集合的集合无法存储在属性中。

所以,你有两个选择。你可以存储一个不是多维的平面阵列,做这样的事情:

MERGE (t:Timestamp { load: "thistle" }) 
ON CREATE SET t.date: timestamp()
SET t.data = t.data + split(line,",")

第二个选项是根本不使用数组,这是我建议的。无论它是什么,你都需要一个更好的图形模型(你还没有真正指定)。考虑将这些值分解为多个节点以及它们之间的一组关系。这将使加载数据变得更加容易,并为您提供利用neo4j做得好并且更容易查询的好处。