В Neo4j существует простой способ комбинировать инструкции WHERE, чтобы избежать повторного чтения одного и того же файла при одновременном игнорировании значений NULL.Neo4j/Cypher Условные выражения для загрузки данных
Например, можно пройти через CSV один раз, и сделать что-то вроде следующего
LOAD CSV WITH HEADERS from "file" as line
WITH line, line.FirstNodeID as NodeOneID
WHERE NodeOneID IS NOT NULL
WITH NodeOneID
CREATE (n1:NodeOne { ID : NodeOneID })
WITH line, line.SecondNodeID as NodeTwoID
WHERE NodeTwoID IS NOT NULL
WITH NodeTwoID
CREATE (n2:NodeTwo { ID : NodeTwoID})
;
В настоящее время, сценарий НАГРУЗКИ выйдет, если NodeOneID равно нулю, даже если NodeTwoID НЕ ноль. Как я могу построить простое условие if-else, в котором сценарий LOAD загрузит соответствующие узлы, если NodeOneID или NodeTwoID не являются нулевыми?
ОБНОВЛЕНИЕ: Только что видел CASE. Собираюсь проверить это быстро.
Насколько эффективна память? Не будет ли хранить каждую строку в отдельных списках? Таким образом, для крупных импортных товаров это может быть разрушительным? – NumenorForLife
Это прекрасно. –