Нужно добавить новое свойство ко всем меткам, ожидайте, что имя метки не будет начинаться как » IA_ » в шифре neo4j

#neo4j #cypher

Вопрос:

Я хочу добавить новое свойство для всех этикеток, кроме названия этикетки, начинающегося с «x»

Я попытался выполнить приведенный ниже запрос cyper, но он не удался.

 MATCH (n)
WITH DISTINCT labels(n) AS label
UNWIND label AS names
WITH names AS candidate
WHERE candidate =~ '^(.?$|[^I]. |I[^A].*)*'
CALL apoc.create.setProperty(labels(candidate),'link','')
    YIELD node
    return node
 

Ответ №1:

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

 MATCH (n)
WHERE NONE( label IN labels(n) WHERE label STARTS WITH ‘IA_’ )
SET n.myProperty = myValue
 

добавляет свойство к узлам, не имеющим метки, начинающейся с IA_