Match(csav:CSAVHierarchy) with csav Match(cx:CXCustomerHierarchy) with cx Optional Match(csav)-[:CSAVCustomerHasChild]->(csa:CSAVHierarchy) where csa._type='CXCustomer' OR csa._type='CXCustomerBU' Optional Match(cx)-[:CXCustomerHasChild]->(cxc:CXCustomerHierarchy) where cxc._type='CXCustomer' OR cxc._type='CXCustomerBU' return CASE WHEN csa.ssid = cxc.ssid and csa.elementLabel = cxc.elementLabel THEN "yes" ELSE "No" END As result with this query its giving cartesian issue and i want to carry forward both the nodes data for further use.where I m lacking?
3 Réponses :
Vous pouvez utiliser le plug-in apoc code> (voir HTTPS: //NEO4J-CONTRIB.GITUB.IO/NEO4J-APOCOC-PROCÉDURES ):
Match(n:Person{ssid:"1234"}) with collect(n) as nodes CALL apoc.refactor.mergeNodes(nodes) YIELD node RETURN node
J'utilise l'édition communautaire pour les tests, comment installer la procédure APOC là-bas
Vous pouvez placer le pot (voir Github.com/NEO4J-CONTRIB/NEO4J-APOC -Procédés / libellés ) dans le dossier Plugins
Vous pouvez exécuter appel apoc.help ("apoc") code> après le redémarrage? Si non, regardez ici: Stackoverflow.com/a/42741433/5785085
Ceci est la solution que j'ai proposée avec
Cette requête peut faire ce que vous voulez. Il renvoie l'unique CXC code> et
csa code> paires qui transmettent tous vos tests.
MATCH (csa:CSAVHierarchy)
WHERE
(:CSAVHierarchy)-[:CSAVCustomerHasChild]->(csa) AND
csa._type='CXCustomer' OR csa._type='CXCustomerBU'
MATCH (cxc:CXCustomerHierarchy)
WHERE
(:CXCustomerHierarchy)-[:CXCustomerHasChild]->(cxc) AND
csa.ssid = cxc.ssid AND
csa.elementLabel = cxc.elementLabel AND
(cxc._type='CXCustomer' OR cxc._type='CXCustomerBU')
RETURN cxc, csa
Et s'il existe différentes valeurs pour la même propriété?
Actuellement je cherche juste à fusionner les nœuds qui ont les mêmes identifiants
Ce que @raj est demandé, est-ce: si 2 nœuds avec le même
SSID code> ont des valeurs code> différents code>, comment sélectionnez-vous le nom code> nom code> à utiliser dans le nœud fusionné?