neo4j 在从 csv 导入期间指定数据类型

neo4j specify data-type during import from csv

有没有办法在导入时告诉neo4j值的类型? 例如,neo4j 是否知道“2015-0104T10:33:44”是日期还是字符串?

谢谢!

Neo4j 中没有 DATE 类型。

但是您可以在 Neo4j 中将值转换为 3 种可能的类型:

  1. toFloat(value)
  2. toInt(value)
  3. toString(value)

Neo4j 使用 java 原始类型、字符串或那些 属性 值的数组。没有日期类型。所以“2015-0104T10:33:44”是一个字符串。

Cypher 提供了几个用于类型转换的函数,例如 toFloattoInt,...可能对您有所帮助。

大多数人存储自纪元以来的毫秒以获取日期和时间信息。但是 Cypher 还没有将字符串转换为毫秒的函数,因此您可能在 csv 文件的预处理步骤中执行此操作。

老实说,我不知道在 2015 年问这个问题时是什么情况,但现在至少可以在使用 LOAD CSV 导入时使用任何一种密码函数。

这意味着,就像您可以使用 toInt(...) 一样,您也可以使用例如date(row.date)(其中 row.date 可能包含类似“2018-07-01”的值)在 LOAD CSV 语句的 ON MATCHON CREATE 部分。

有关功能的详细信息,请参阅 https://neo4j.com/docs/developer-manual/current/cypher/functions/

至于 Neo4j 中可用的数据类型,自 2015 年以来,情况可能也发生了很大变化。查看 https://neo4j.com/docs/developer-manual/current/cypher/syntax/values/ 表明现在可以使用 Date、Time、LocalTime、DateTime、LocalDateTime 和 Duration 等时间类型。

Neo4j 中有一个日期类型: 如果您使用 Neo4j 数据导入工具导入 CSV 文件(参见 link https://neo4j.com/docs/operations-manual/current/tools/import/file-header-format/),您可以为文件的一列指定具有特定格式的日期时间

另见:https://neo4j.com/docs/developer-manual/current/cypher/syntax/temporal/