获取具有特定边的顶点 - 删除重复项

Get vertex with particular edges - remove duplicates

我需要导出一些连接到它的顶点。没有任何投影 - 就像它一样(就像数据转储)。 我想要实现的是删除结果中的冗余顶点(json 文档)。 假设有一个图结构:

g.V().has('id', '000-000').as('a').out().as('b').out().as('c').select('a','b','c')
==>[a:v[1],b:v[4],c:v[5]]
==>[a:v[1],b:v[4],c:v[3]]

我希望获得格式如下的结果:

==>[a:v[1],b:v[4],[c:v[5], c:v[3]]]

如果会有更多bc个顶点,类似这样:

==>[a:v[1],[b:v[4],b:v[7]],[c:v[5], c:v[3], c:v[9]]]

只是为了让输出数据(在json)更小。

目前我得到的是这样的东西:

[{
    "a": {},
    "b4": {},
    "c5": {}
},
{
    "a": {},
    "b4": {},
    "c3": {}
}]

并希望拥有:

[{
    "a": {},
    "b": [
        {b4},
        {b4}
    ],
    "c": [
        {c5}, 
        {c3}
    ]
]}

我应该使用哪些运算符来实现?

执行此操作的最佳方法是使用 Gremlin 中的 project() 步骤。如果您想要每个字段中的值列表,可以使用 fold() 将它们放入列表中。示例:

g.('000-000').project('a','b','c')
     .by()
     .by(out().fold())
     .by(out().out().fold())