SET метка на основе данных в LOAD CSV

Я использую Neo4j 2.2.0 и импортирую данные (в виде файла узлов и файла отношений) через LOAD CSV.

Все узлы будут импортированы под меткой «Person», однако я хочу добавить метку «Geotag» для некоторых из них, если их поля широты и долготы в файле узлов пусты.

Так, например, файл приведенных ниже узлов (игнорируйте лишнюю строку между строками)

«Имя пользователя», «идентификатор», «широта», «долгота»

"abc123", "111111111", "33,223", "33.223"

"abc456", "222222222", "", ""

Я хотел бы создать узел "abc123" с метками Person и Geotag и узел abc456 только с меткой Person, поскольку он не имеет широты и долготы.

Я думал, что это будет что-то вроде:

LOAD CSV WITH HEADERS FROM "file:/users.csv" AS line 
CREATE (p:Person { username: line.username, id: line.id, latitude: line.latitude, longitude: line.longitude }) 
SET p: (CASE WHEN line.latitude IS NOT NULL THEN GEOTAGGED);

Я знаю, что неправильно использую оператор CASE, а также оператор SET, но возможно ли это сделать при импорте узлов? Этот файл содержит более 3 миллионов узлов, и было бы полезно сделать это после вставки, чтобы при добавлении новых узлов (обычно в пакетном режиме) мы не исследовали все узлы только для того, чтобы перейти к новым.

Я исследовал другие вопросы (Как установить тип отношения и метку в LOAD CSV?, Загрузка отношений из данных CSV в neo4j db, Neo4j Cypher - создание узлов и установка меток с помощью LOAD CSV), однако они отличаются от моего вопроса тем, что эти OP пытаются использовать поле в файле в качестве метки, а я просто пытаюсь принять условное решение о том, какие метки использовать на основе данных в файле.

Спасибо!

РЕДАКТИРОВАТЬ: В ответ на ответ я пробую следующее:

LOAD CSV WITH HEADERS FROM "file:/users.csv" AS line
CREATE (p:Person { username: line.username, id: line.id, latitude: line.latitude, longitude: line.longitude }) 
CASE WHEN line.latitude IS NOT NULL THEN [1] ELSE [] END AS geotagged 
FOREACH (x IN geotagged | SET p:Geotag); 

Я получаю следующую ошибку:

QueryExecutionKernelException: Invalid input 'A': expected 'r/R' (line 3, column 2 (offset: 454)) "CASE WHEN line.latitude IS NOT NULL THEN [1] ELSE [] END AS geotagged"

С морковкой под «А» в «ДЕЛО»

EDIT2:

Ниже приведено полное решение, вдохновленное и мало отличающееся от решения Дэвида.

LOAD CSV WITH HEADERS FROM "file:/users.csv" AS line
CREATE (p:Person { username: line.username, id: line.id, latitude: line.latitude, longitude: line.longitude }) 
WITH p, CASE WHEN line.latitude <> "" THEN [1] ELSE [] END AS geotagged 
FOREACH (x IN geotagged | SET p:Geotag); 

Ответы на вопрос(1)

Ваш ответ на вопрос