2017-10-20 207 views
1

所以我有簡單的圖。最左邊的節點是「團隊」類。第二個最正確的(灰色)是'體育'類節點。OrientDB深度遍歷,直到具體的類

SimpleGraph

我需要找到當我只有一個團隊節點此查詢的工作內容涉及特定運動

所有團隊:

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

後我添加的第二個節點'團隊'類我開始得到這個錯誤:

java.lang.RuntimeException: Invalid pattern to match! 

如果我刪除'maxDepth'它可以工作,但不會返回任何內容

我應該怎麼做才能使其工作?

回答

1

這絕對是一個錯誤,我正在檢查它。 作爲一個快速的變通,你可以在模式中添加一個條件的第一個元素,讓你強制執行,從那裏開始:

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

更妙的是,從右手取下「下課」 :

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

這裏的問題是,該模式是在錯誤的方向進行評估(從右到左),與上述工作,在你身邊,迫使OrientDB來評估它從左至右

+0

謝謝很多!它現在的作品:) – Szer

+1

好消息,我只是推動了2.2.x分支的修復,現在原來的查詢工作正常。該修補程序將以2.2.30發佈 –