鑑於此圖表: 第三方可能或不擁有參數。orientdb停止遍歷一些條件
參數是通過一個上下文,代碼和值(:CREATE VERTEX Parameter SET context='val1', code='val2', value='val3'
EX)表示。 ThirdParty由類型表示(例如:CREATE VERTEX ThirdParty SET type=7
)
從頂點#40:0開始,我想檢索給定參數的值val2')連接到此節點(節點可以有不同的參數)。如果節點不擁有給定的參數,那麼我想逐個遍歷該節點的父節點,直到找到給定參數的值。
我嘗試使用此查詢:
SELECT parameter.value FROM (MATCH {class:ThirdParty,
where: (type = 7)}.in('parent_of')
{while: (out('owns').size() == 0),
where: (out('owns').size() > 0)}.out('owns')
{as: parameter} RETURN parameter)
但問題是,一個ThirdPary可以有多個參數,用不同的背景和代碼,我無法找到如何修改而部分在查詢中與給定參數(context ='val1'和code ='val2')進行比較。
感謝Luigi的回答!你修正的錯誤與錯誤有關:'java.lang.UnsupportedOperationException:Implement SuffixIdentifier!'?因爲當我通過刪除部分out('owns')來執行查詢時,上下文包含來自'while'和'where'子句的「val1」AND',我得到'UnsupportedOperationException' – mabbas
正是我所做的修復解決了這個問題 –
我剛做了一個使用快照的測試,它工作得很好!我只需要將'where:(code =「val2」)''添加到'{as:parameter}'子句中,以檢索給定參數的值,否則查詢返回連接到節點的所有參數的值。感謝您的幫助!我昨天才開始研究orientdb,而且我已經是一個很棒的粉絲! :) – mabbas