0
votes

Comparez les données de deux nœuds de différentes étiquettes à Neo4J avec une propriété

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 commentaires

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 ont des valeurs différents , comment sélectionnez-vous le nom nom à utiliser dans le nœud fusionné?


3 Réponses :


3
votes

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


3 commentaires

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") après le redémarrage? Si non, regardez ici: Stackoverflow.com/a/42741433/5785085



0
votes

Ceci est la solution que j'ai proposée avec xxx


0 commentaires

1
votes

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


0 commentaires