[英]Gremlin query to check if a value exists in the given external map
我想遍歷圖表,直到我的節點屬性值存在於集合中。 Set 包含節點和普通對象的 id。
查詢類似於:
public Map<String,Object> getNodes( Long startNodeID, Set<String, TraversedNode> mySet){
return g.withSideEffect("x",mySet).V(startNodeID)
.repeat( ...something )
.choose( ...something )
.until( myProperty is found in the given set )
}
我在直到部分嘗試了很多東西,但無法得到它。 有什么建議可以實現嗎? 它可能與值和 where 關鍵字有關。
values("id").where(P.within("x"))
不起作用
使用航線圖作為樣本數據,可以編寫一個簡單的查詢,在查詢進行時在提供的集合中查找 ID。 正如評論中提到的,這是否是您正在尋找的不是 100% 清楚,但也許它會幫助您解決問題。
gremlin> g.withSideEffect('s',[48,54,62,12]).
......1> V(44).
......2> repeat(out().simplePath()).
......3> until(where(within('s')).by(id).by()).
......4> path().
......5> limit(5)
==>[v[44],v[8],v[48]]
==>[v[44],v[8],v[54]]
==>[v[44],v[8],v[12]]
==>[v[44],v[13],v[12]]
==>[v[44],v[13],v[48]]
看起來您應該只能執行until(hasId(within('s')))
,但在這種情況下's'
被視為文字字符串“s”,而不是表示名為s
的集合的符號。 當謂詞嵌套在where
步驟中時,例如where(within('s'))
,Gremlin 將其視為一種特殊情況,並將s
視為之前聲明的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.