Gremlin遍历。输出所有Edge细节以及进/出Vertex id

问题描述 投票:0回答:1

我在构建gremlin查询时遇到了麻烦,它给了我所有的Edge细节(标签,属性)以及与Vertex相邻的Inv和OutV的ID(我不再需要来自链接的Vertex的更多信息,只有ID的ID) )。

我所拥有的只是Edge ID作为起点。

所以我的Edge如下:

Label: "CONTAINS"
id: c6b4f3cb-f96e-cc97-dedb-e405771cb4f2
keys:
key="ekey1", value="e1"
key="ekey2", value="e2"

inV has id 50b4f3cb-f907-c31c-6284-1a3463fd72b9

outV has id 7cb4f3cb-d9a2-1398-61d7-9339be34833b

我想要的是一个单一的查询,它将返回我的内容 -

"CONTAINS", "c6b4f3cb-f96e-cc97-dedb-e405771cb4f2", {ekey1=e1, ekey2=e2, ...}, "50b4f3cb-f907-c31c-6284-1a3463fd72b9", "7cb4f3cb-d9a2-1398-61d7-9339be34833b"

我可以在单独的查询中获取信息,即

g.E("c6b4f3cb-f96e-cc97-dedb-e405771cb4f2").bothV()
==>v[50b4f3cb-f907-c31c-6284-1a3463fd72b9]
==>v[7cb4f3cb-d9a2-1398-61d7-9339be34833b]
g.E("c6b4f3cb-f96e-cc97-dedb-e405771cb4f2").valueMap()
==>{ekey1=e1, ekey2=e2}
g.E("c6b4f3cb-f96e-cc97-dedb-e405771cb4f2").label()
==>CONTAINS

但我不能为我的生活弄清楚如何将这些结合成一体。

gremlin tinkerpop tinkerpop3 graph-traversal amazon-neptune
1个回答
2
投票

你可以使用project()来获得你想要的东西:

g.E("c6b4f3cb-f96e-cc97-dedb-e405771cb4f2").
  project('ekey1', 'inV', 'outV', 'label').
    by('ekey1').
    by(inV().id()).
    by(outV().id()).
    by(label).
© www.soinside.com 2019 - 2024. All rights reserved.