Neo4j Relation Bidirectionnelle
Est-il un moyen de créer une relation bidirectionnelle dans Neo4j à l'aide de Cypher? Je voudrais que la relation est bidirectionnelle plutôt que de faire deux unidirectionnel relations dans les deux sens Pour exemple:
(A)<-[FRIEND]->(B)
Plutôt que:
(A)-[FRIEND]->(B)
(A)<-[FRIEND]-(B)
Merci d'avance 🙂
Vous devez vous connecter pour publier un commentaire.
Non, il n'y en a pas. Toutes les relations dans neo4j ont un sens, en commençant et se terminant à un nœud donné.
Il y a un petit nombre de solutions de contournement.
Tout d'abord, comme vous l'avez suggéré, on peut soit avoir deux relations, l'une allant de A à B et l'autre de B à A.
Sinon, lors de l'écriture de notre MATCH de la requête, nous pouvons spécifier de faire correspondre les modèles directionlessly, en utilisant une requête telle que
qui se soucient pas de savoir si Un est amis avec B ou vice-versa, et nous permet de choisir une direction arbitraire lorsque nous créons de la relation.
CREATE
d'une relation sans direction. Ce qui est logique, puisqu'il serait erroné de hasard décider d'une direction sans que vous vous en indiquer un.Selon cet article: La modélisation de Données Neo4j: les Relations Bidirectionnelles
Strictement meilleur choix est de créer une relation dans une direction arbitraire et de ne pas spécifier la direction lors de l'interrogation:
Le moteur est capable de traverser l'arête dans les deux sens. La création de l'anti-directionnelle bord est inutile et ne sert qu'à faire perdre de l'espace et de la traversée du temps.