0
我想查詢/遍歷一個orientDB圖,並且無法弄清楚如何在遍歷期間進行過濾。遍歷圖和過濾
OTraverse traverse = txGraph.traverse();
traverse.setMaxDepth(3);
for(OIdentifiable obj : traverse.fields("in_friend","in","out","out_friend").target(new ORecordId("#15:8")).predicate(new OCommandPredicate(){
public Object evaluate(OIdentifiable iRecord, ODocument arg1, OCommandContext arg0) {
Vertex v = txGraph.getVertex(iRecord.getIdentity());
if (iRecord.getClass().equals("person") || (v.getProperty("test")!= null && v.getProperty("test").toString().equals("continue"))){
log.println(v.getProperty("test").toString());
return true;
}
return false;
}
該代碼在節點#15:8(一個人)開始遍歷,並沿着所有類型爲「朋友」的邊。我不完全相信我正在做這件事,但結果看起來是正確的(直到我包括謂詞函數)
我現在想要做的是,只跟隨那些類型爲「朋友」的邊和與具有值「繼續」的屬性「測試」
在此處的代碼中使用謂詞將在遇到任何不符合條件的Vertex或Edge時立即停止遍歷。
有沒有辦法讓它不遵循那些特定的邊,而是繼續沿着其他邊搜索圖? ETA:我試圖用Java來做到這一點,並且更喜歡這種方式;我很開放,被告知爲什麼我不應該,強硬。