Когда поиск узлов с определенным почтовым индексом:Merge узел с таким же значением свойства в Neo4j
MATCH (z:ZipCode) WHERE z.zipcode = "2014 AAE" RETURN z.zipcode
я получаю дубликаты:
z.zipcode
2014 AAE
2014 AAE
Когда я ищу отношения определенного почтовый индекса:
MATCH p=(z:ZipCode)-->() WHERE z.zipcode = "2014 AAE" RETURN p
я получаю один узел ZipCode 2014 AAE
указывающий на дом узла 518Q
Как я могу объединить узлы zipcode с тем же значением свойства, , но оставить все отношения неповрежденными в zipcode?
Edit:
После ответа cybersam, я построил запрос. Это способ объединить узлы с APOC?
MATCH (z1:ZipCode)-->(), (z2:ZipCode)-->()
WHERE z1.zipcode = z2.zipcode
AND ID(z1) <> ID(z2)
WITH COLLECT([z1,z2]) AS zs
CALL apoc.refactor.mergeNodes(zs) YIELD node
RETURN node;
Я получаю это как ошибку:
Type mismatch: expected Collection<Node> but was Collection<Collection<Node>> (line 5, column 31 (offset: 160))
"CALL apoc.refactor.mergeNodes(zs) YIELD node"
Я думаю, что это не возможно, чтобы получить 2 результаты первого запроса и 1 из второго. В первом запросе четко сказано, что есть два узла с определенным «ZipCode». Возможно ли, что есть также некоторый узел 'p' с zipcode' 2014 AAE', который имеет 'IN-отношение ''? Я имею в виду '(z: ZipCode) <-()'. Попробуйте переписать свой второй запрос, чтобы проверить его. Но давно я играл с neo4j, поэтому, возможно, мои мысли ошибочны. – Gondil
Если вы хотите удалить дубликаты, вам просто нужно сопоставить все узлы (соответствующие 2 узлам, например, 'm' и' n'), сравните их, чтобы вы знали, что они одинаковы (имеют одинаковые свойства 'm.zipcode = n.zipcode') но они не совпадают с одним узлом 'm <> n', чем вам нужно найти все отношения' n', которые не находятся в 'm', создайте эти« n-отношения »на узле' m' и, наконец, удалите узел n и все его отношения ». Лучшее решение будет создавать хорошие запросы на создание, поэтому вы объединяете дубликаты во время создания узлов и отношений, и вам не придется это делать позже. – Gondil
@ Gondi: Есть два почтовых индекса, и только один из них связан с отношениями. Итак, результаты из 2 запросов имеют смысл. – cybersam