neo4j указывает тип данных при импорте из csv
Есть ли способ сказать neo4j тип значения при импорте? например, знает ли neo4j, является ли "2015-0104T10:33:44" датой или строкой?
Спасибо!
4 ответа
Neo4j использует примитивные типы Java, строки или массивы для значений свойств. Там нет типа даты. Таким образом, "2015-0104T10:33:44" является строкой.
Cypher предоставляет несколько функций для преобразования типов, таких как toFloat
, toInt
... это может помочь тебе здесь.
Большинство людей хранят миллисы с эпохи информации о дате и времени. Однако у Cypher пока нет функции для преобразования строки в миллис, так что вы делаете это, вероятно, на этапе предварительной обработки в ваших CSV-файлах.
В Neo4j нет типа DATE.
Однако вы можете привести значения к 3 возможным типам в Neo4j:
toFloat(value)
toInt(value)
toString(value)
Я, честно говоря, понятия не имею, как было в 2015 году, когда был задан вопрос, но теперь, по крайней мере, можно использовать любую из функций шифрования при импорте с помощью LOAD CSV.
Это означает, что так же, как вы можете использовать toInt(...)
Вы также можете использовать, например, date(row.date)
(где row.date может содержать значение типа "2018-07-01") в ON MATCH
а также ON CREATE
части LOAD CSV
заявление.
См. https://neo4j.com/docs/developer-manual/current/cypher/functions/ для получения подробной информации о функциях.
Относительно того, какие типы данных доступны в Neo4j, картина, вероятно, также сильно изменилась с 2015 года. Глядя на https://neo4j.com/docs/developer-manual/current/cypher/syntax/values/ предположить, что временные типы, такие как: Дата, Время, LocalTime, DateTime, LocalDateTime и Duration, теперь доступны.
В Neo4j есть тип даты: если вы импортируете файл CSV с помощью инструмента импорта данных Neo4j (см. Ссылку https://neo4j.com/docs/operations-manual/current/tools/import/file-header-format/) вы можете указать dateTime с определенным форматом для столбца вашего файла
Также см.: https://neo4j.com/docs/developer-manual/current/cypher/syntax/temporal/