OrientDB深度遍历直到具体class

OrientDB deep traversal until specific class

所以我有简单的图表。最左边的节点是 'Team' class。第二个最右边(灰色的)是 'Sport' class node.

我需要找到与特定运动相关的所有团队

当我只有一个团队节点时,此查询有效:

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

添加 'Team' 的第二个节点后 class 我开始收到此错误:

java.lang.RuntimeException: Invalid pattern to match!

如果我删除 'maxDepth' 它有效,但 returns 没有任何作用

我应该怎么做才能让它发挥作用?

这肯定是一个错误,我正在检查它。 作为一种快速解决方法,您可以向模式中的第一个元素添加一个条件,以便强制执行程序从那里开始:

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

更好的是,去掉右手的"class":

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

这里的问题是在错误的方向(从右到左)评估模式,通过上述变通方法,您强制 OrientDB 从左到右评估它