Я допустил ошибку, несовместимую с типами атрибутов. Для узлов типа «человек» некоторые имеют строку для свойства «external_id», а некоторые имеют int. Я хотел бы удалить все узлы, где свойство является строкой. Выполняется следующий запрос и, кажется, дает правильный ответ.Neo4j/Cypher Удалить с «Неизвестным идентификатором»
MATCH (n:person)
WHERE TOSTRING(n.external_id) = n.external_id
RETURN count(n)
Однако, когда я пытаюсь удалить эти узлы с помощью следующего запроса, я получаю «Неизвестный идентификатор` n`.»:
MATCH (n:person)
WHERE TOSTRING(n.external_id) = n.external_id
DELETE n
Я новичок в Neo4j и Cypher, но это похоже, должно быть довольно просто. Я уже удалил все отношения для этих узлов. Что мне здесь не хватает?
Похоже, исключение синтаксического анализа, вы можете попробовать с 'Detach delete' вместо' delete' –
Я использую Neo4j 2.2.5, так что 'DETACH 'недоступен. Но я не думаю, что это должно иметь значение, узлы, которые я пытаюсь удалить, не имеют никаких отношений. –
Правильно, я только что протестировал в 2.3.1 и без DETACH DELETE он тоже не работал. Я проверю версию 2.2.5. –