簡體   English   中英

Gremlin 查詢以檢查給定外部 map 中是否存在值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM