使用 Gremlin 查询从由边连接的根顶点检索所有顶点

Retrieve all vertices from root vertex joined by edges with Gremlin query

如何在 Gremlin 查询中检索从根顶点开始的所有顶点属性?

我们有以下结构:
根顶点:Employee

边缘:EdCompany、EdDepartment、EdRole
顶点:公司、部门、角色

我们正在尝试接收与根顶点相连的其他顶点的数据。 像这样思考:

{
    "employee": [
        {
            "id": "1",
            "label": "Employee",
            "type": "vertex",
            "properties": { ... },
            "company": { 
                "id": "A220",
                "label": "Company",
                "type": "vertex",
                "properties": { ... }, 
            },
            "department": { ... },
            "edge": { ... }
        },
        { ... }
    ]
}

我们已经尝试过该查询,但是 return 一个复杂的 JSON:

g.V().hasLabel("Employee").inE().outV().tree()

编辑:

我们也试过 Kelvin 建议的查询:

g.V().hasLabel("Employee").inE().outV().tree().by(valueMap())  

堆栈跟踪:
提交查询失败:g.V().hasLabel("Employee").inE().outV().tree().by(valueMap()):服务器序列化错误:ActivityId: 29f4b64e-c476-44b8-8e35-a07dd31d4242 ExceptionType:GraphSerializeException ExceptionMessage:Gremlin 序列化错误:GraphSON V1_0 序列化程序无法将类型对象序列化:MapField 为原始值以执行所需的 Gremlin 步骤

如果您只需要从根开始的树,您只需在查询中添加 by(valueMap()) 即可获得包含的属性。如:

g.V().hasLabel("Employee").
  inE().
  outV().
  tree().
    by(valueMap())