2017-10-20 24 views
1

J'ai donc un graphe simple. Les nœuds les plus à gauche sont la classe 'Team'. Le deuxième plus à droite (gris) est le nœud de classe 'Sport'.Traversée profonde OrientDB jusqu'à la classe spécifique

SimpleGraph

Je dois trouver toutes les équipes qui se rapporte à Sport spécifique

Quand j'ai un seul nœud d'équipe cette requête fonctionne:

MATCH {class:Team, as: team} --> {class: Sport, maxDepth: 10} 
RETURN team.Abbreviation 

Après que j'ai ajouté second noeud Classe 'Team' J'ai commencé à avoir cette erreur:

java.lang.RuntimeException: Invalid pattern to match! 

Si je supprime 'maxDepth' cela fonctionne mais ne renvoie rien

Que dois-je faire pour le faire fonctionner?

Répondre

1

C'est vraiment un bug, je le vérifie. Comme un travail autour rapide, vous pouvez ajouter une condition au premier élément du modèle, de sorte que vous forcer l'exécuteur à partir de là:

MATCH {class:Team, as: team, where:(true)} --> {class: Sport, maxDepth: 10} 
RETURN team.Abbreviation 

Mieux encore, enlever la « classe » de la main droite :

MATCH {class:Team, as: team} --> {where: (@class = 'Sport'), maxDepth: 10} 
RETURN team.Abbreviation 

le problème ici est que le modèle est en cours d'évaluation dans la mauvaise direction (de droite à gauche), avec le travail autour au-dessus de vous obligez OrientDB pour l'évaluer de gauche à droite

+0

Merci beaucoup! Cela fonctionne maintenant :) – Szer

+1

Bonnes nouvelles, je viens de pousser un correctif sur la branche 2.2.x, maintenant la requête d'origine fonctionne bien. Le correctif sera publié avec 2.2.30 –