我正在使用 Neo4j 2.2.3 并尝试使用 Cypher 的 LOAD CSV 导入一个 CSV 文件,如下所示:
PRODUCT_ID,PRODUCT_DESC,PRODUCT_TYPE
99,"A","X"
999,"B","X"
9999,"C","Y"
99999,"D","Y"
但是,我在使用自定义 ID 时遇到了困难。Neo4j 不导入它们。
该PRODUCT_ID
列是来自不同系统的唯一 ID(我无法控制),但可以说,它不是行号。PRODUCT_ID
需要匹配来自其他文件的数据。
当我查看文件时,我会看到所有字段:
LOAD CSV WITH HEADERS FROM 'file:///path/to/product.csv' AS row
RETURN row
当我选择任何列时也是如此,除了 PRODUCT_ID
:
LOAD CSV WITH HEADERS FROM 'file:///path/to/product.csv' AS row
RETURN row.PRODUCT_DESC
当我RETURN row.PRODUCT_ID
改为使用时,我得到一个空表。
同样,这不起作用:
LOAD CSV WITH HEADERS FROM 'file:///path/to/product.csv' AS row
CREATE (p:Product { id: toInt(row.PRODUCT_ID),
name: row.PRODUCT_DESC,
type: row.PRODUCT_TYPE })
我得到带有描述和类型的产品,但是 ID 丢失了。我需要将这个 CSV 文件与其他文件匹配的 ID,但我被困住了,希望能得到一些帮助。我没有在文档中看到关于 ID 列的任何限制。
当我将PRODUCT_ID
列从第一个位置移开时,它需要注意的是忽略第一个列。因此,如果我制作PRODUCT_ID
最后一列,PRODUCT_DESC
则为空。是否需要将行号作为 CSV 中的第一列?似乎很奇怪。
有什么建议么?