groovy 的分步不提取某些节点的值
By-step with groovy does not extract values for some node
问题描述如下:
我想找到一些感兴趣的路径,得到相应的顶点或边的属性,我使用的groovy如下:
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),但我不知道如何正确,任何人都可以帮助我或给我一些建议吗?
我不确定为什么那行不通。如果您尝试使用此解决方法替换:
会发生什么
by(__.choose(__.has('p_v_tag'),
__.properties('p_v_tag').project('value').by(__.value()).fold(),
__.constant([])
)
与:
by(coalesce(properties('p_v_tag').
project('value').
by(__.value()).
fold(),
constant([]))
问题描述如下:
我想找到一些感兴趣的路径,得到相应的顶点或边的属性,我使用的groovy如下:
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),但我不知道如何正确,任何人都可以帮助我或给我一些建议吗?
我不确定为什么那行不通。如果您尝试使用此解决方法替换:
会发生什么by(__.choose(__.has('p_v_tag'),
__.properties('p_v_tag').project('value').by(__.value()).fold(),
__.constant([])
)
与:
by(coalesce(properties('p_v_tag').
project('value').
by(__.value()).
fold(),
constant([]))