有人可以通过这个简单的查询帮助我吗?非常感谢...
我正在使用以下gremlin查询,它可以很好地为我提供原始顶点(v)(id- = 12345),其边缘(e)和子顶点(id属性)。但是,假设原始顶点“ v”(id为12345)没有传出边,则查询将不返回任何内容。我仍然想要原始顶点('v')的属性,即使它没有输出边缘和一个子代也是如此。我怎样才能做到这一点?
g.V().has('id', '12345').as('v').
outE().as('e').
inV().
as('child_v').
select('v', 'e', 'child_v').
by(valueMap()).by(id).by(id)
最佳答案
当前,您将获得大量重复数据,在上面的查询中,您将获得E次顶点属性。使用project
可能会更好:
g.V('12345').project('v', 'children').
by(valueMap()).
by(outE().as('e').
inV().as('child').
select('e', 'child').by(id).fold())
例如:https://gremlify.com/a1
如果执行以下操作,则可以获取原始数据格式:
g.V('12345').as('v').
coalesce(
outE().as('e').
inV().
as('child_v')
select('v', 'e', 'child_v').
by(valueMap()).by(id).by(id),
project('v').by(valueMap())
)
例如:https://gremlify.com/a2
关于gremlin - 即使没有边缘并且使用select进行投影时,如何产生输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61873356/