Прежде всего, вы должны использовать LOAD CSV WITH HEADERS
для загрузки из этого файла, так как он имеет заголовки.Ваш текущий запрос неправильно добавил бы строку заголовка как узел Art
.Кроме того, использование имен заголовков значительно упрощает написание кода (и его чтение) и делает его менее подверженным ошибкам.
В следующем запросе также используется MERGE
, чтобы гарантировать, что каждый исполнитель (с уникальным идентификатором)) имеет уникальный узел.Он также не сохраняет artistId
в узле Art
, поскольку отношение CREATED_BY
будет указывать на соответствующий Artist
.
LOAD CSV WITH HEADERS FROM 'https://raw.githubusercontent.com/tategallery/collection/master/artwork_data.csv' AS r
MERGE (a:Artist {id: r.artistId})
ON CREATE SET a.name = r.artist
CREATE (:Art {
id: r.id, accession_number: r.accession_number, title: r.title,
medium: r.medium, creditLine: r.creditLine, year: r.year,
width: r.width, height: r.height, depth: r.depth, units: r.units,
thumbnailUrl: r.thumbnailUrl, url: r.url}
) - [:CREATED_BY {role: r.artistRole}] -> (a)