2014-01-09 2 views
4

Как удалить несколько узлов (НЕ ВСЕ) в neo4j?
Как удалить несколько узлов в neo4j

У меня есть этот запрос,
MATCH (n)
where n.name IS NULL
delete n

Это возвращает более одного узла, я хочу, чтобы удалить все эти узлы (все узлы, которые по ошибке создали вот почему утратившим).

ошибка, я облицовкой

javax.transaction.HeuristicRollbackException: Failed to commit transaction Transaction(11, owner:"qtp16626756-84")[STATUS_NO_TRANSACTION,Resources=1], transaction rolled back ---> javax.transaction.xa.XAException

СЛУЧАЙ 2: Что делать в случае NOT NULL (свойство), но нет никаких отношений не связан в узле или два; означает узел, который является видом orhpan, не связанным с другим узлом.

Я пытался использовать LIMIT/SKIP, но не работал. Любая помощь?

ответ

10

Вы должны также удалить любые отношения, связанные с этими узлами, например, так:

match (n) 
where n.name IS NULL 
optional match (n)-[r]-() 
delete n, r 

Обновление для второго случая (это удаляет только сироты):

match (n) 
where NOT (n)--() 
    and n.name IS NULL 
delete n 
+0

'Все узлы, которые ошибочно создано thats, почему стало null' означает, что были созданы только узлы, я не вижу отношения, связанные с ними, как исходящими, так и входящими. – ShreyansS

+1

Возможно, вам нужен другой запрос для поиска соответствующих узлов. Вы можете попробовать «MATCH (n) WHERE n.name NULL RETURN n', чтобы проверить, что они правильные. –

+0

Вопрос обновлен. Пожалуйста, проверьте и помогите. – ShreyansS

Смежные вопросы