簡體   English   中英

Gremlin Value Map 帶邊陣列

[英]Gremlin Value Map With Array of Edges

我正在嘗試使用 Node Gremlin 和 AWS Neptune 查詢頂點的屬性,並在單個 output 中通過“出”邊緣及其所有屬性獲取所有頂點。 例如,如果我有一個“貝克”頂點,其邊“烘烤”到兩個“蛋糕”頂點,我想得到一個“貝克”object,其中包含他的所有屬性以及兩個“蛋糕”的數組頂點作為具有所有屬性的對象。

我知道我可以使用 a.project 有效地做到這一點,但我不想 select 用於任何頂點的特定屬性,因為我想要它們的所有屬性。

我目前正在處理這樣的查詢: gV(BakerId).as('Baker').out('bakes').as('Cake').select('Baker','Cake').by(valueMap(true)) ,但問題是這個查詢給了我一個包含兩個輸出的列表,一個帶有 Baker 和第一個 Cake,另一個帶有相同的 Baker 和第二個蛋糕。 我想避免冗余並將其合並到一個 output 中,而 Baker 只出現一次。

我也希望有一個足夠通用的解決方案(或足夠簡單以輕松擴展)來處理更深層次的問題,以便在“蛋糕”頂點上的“外”邊上做同樣的事情,例如“蛋糕”->“制造”- ->“成分”,所以我可以得到一個面包師,每個蛋糕上只有一次,每個成分上只有一次,並且都具有所有屬性。

您可以使用兩個project步驟並使用valueMap ,這樣您就不需要 sespecifiy 屬性:

g.V().hasLabel('Baker').
  project('Baker', 'Cake').
    by(valueMap(true)).
    by(out('bakes').
      project('Cake', 'Ingredients').
        by(valueMap(true)).
        by(out('madeOf').valueMap(true).
          fold()).fold())

例如: https://gremlify.com/34e9o3r9gag

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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