Как исправить этот запрос Neo4j APOC, который создает узлы из файла CSV?

Я хочу, чтобы запрос читал файл CSV и создавал узел для каждой строки в файле.

Вот запрос:

CALL apoc.load.csv('FILE:///C:/Temp/Test/Test/Neo4jTest/import/Neo4j_AttributeProvenance.csv',{sep:","})  YIELD map
CALL apoc.create.node(map.NodeType, {key:map.NodeID}) yield node return count(*)

Вот ошибка:

Can't coerce `RootNode` to List<String>

Вот файл данных:

NodeType,NodeID,SchemaName,TableName,AttributeName,DataType,PreviousNodeID
RootNode,queryprocessingtest.q01.testfieldatablec ,queryprocessingtest,q01,testfieldatablec ,varchar,
Node,queryprocessingtest.qc.testfieldatablec ,queryprocessingtest,qc,testfieldatablec ,varchar,queryprocessingtest.q01.testfieldatablec 
Node,queryprocessingtest.ttablec.testfieldatablec ,queryprocessingtest,ttablec,testfieldatablec ,varchar,queryprocessingtest.q01.testfieldatablec 

person nicomp    schedule 18.07.2017    source источник


Ответы (1)


Первым аргументом процедуры apoc.create.node должен быть массив.

Итак, вам нужно преобразовать значение map.NodeType в массив:

CALL apoc.load.csv('FILE:///C:/Temp/Test/Test/Neo4jTest/import/Neo4j_AttributeProvenance.csv',{sep:","})  YIELD map
CALL apoc.create.node([map.NodeType], {key:map.NodeID}) yield node return count(*)
person stdob--    schedule 18.07.2017
comment
Итак, просто добавьте квадратные скобки к типу узла. Удивительно. Спасибо большое. Я понятия не имею, где я мог найти эту информацию. - person nicomp; 18.07.2017
comment
@nicomp, если этот ответ решил вашу проблему, не забудьте принять его, чтобы пометить этот вопрос как решенный и помогите другим пользователям этого сайта легко найти правильные ответы. - person Bruno Peres; 09.08.2017