Проблема описывается следующим образом:
Я хочу найти некоторые интересующие пути и получить соответствующие свойства вершин или ребер, я использовал следующие обозначения:
g.V().has("p_v_name", "d8e5d39d63c580acdb3eb188a1f4a942").
repeat(__.bothE().otherV().simplePath()).
times(3).emit().
has('p_v_tag').
path().
by(
__.project("label", "id", "p_v_black_tag").
by(__.label()).
by(__.id()).
by(__.choose(__.has('p_v_tag'),
__.properties('p_v_tag').project('value').by(__.value()).fold(),
__.constant([])
)
)
).unfold()
Приведенный выше код дает мне следующий результат:
==>[label:v_user_key,id:749577404608,p_v_tag:[[value:PR016],[value:PR033],[value:PR068]]]
==>[label:e_application_id,id:4jjrk79js-9kcn170g-8ph-nvxhl4s0,p_v_tag:[]]
==>[label:v_application_id,id:1871880949872,p_v_tag:[]]
Результат развернут для облегчения чтения. Это просто путь, состоящий из двух узлов и одного ребра. Исходный узел имеет свойство p_v_tag
, оно имеет несколько свойств. Проблема в том, что целевой узел также имеет свойство p_v_tag
, но код не выводит значения.
Я проверил, что целевой узел имеет свойство p_v_tag
и он не пустой, как показано ниже:
gremlin> g.V(1871880949872).properties('p_v_tag')
==>vp[p_v_tag->outdated]
Я читаю документ (http://tinkerpop.apache.org/docs/current/reference) снова и снова, но я не могу понять, как сделать это правильно, может ли какой-либо орган помочь мне или дать мне какой-нибудь совет?