使用 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())
如何在 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())