Gremlin traversal.Output 所有边缘细节以及 in/out 顶点 ID

Gremlin traversal.Output all Edge details and also in/out Vertex id's

我在构建 gremlin 查询以提供所有边的详细信息(标签、属性)以及与顶点相邻的 Inv 和 OutV 的 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

我想要的是一个查询,它将 return 我像 -

"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

但我一辈子都想不出如何将它们合而为一。

您可以使用 project() 来获取您要查找的内容:

g.E("c6b4f3cb-f96e-cc97-dedb-e405771cb4f2").
  project('ekey1', 'inV', 'outV', 'label').
    by('ekey1').
    by(inV().id()).
    by(outV().id()).
    by(label).