Graph 使用树函数返回gremlin中的边属性
质疑 输出Graph 使用树函数返回gremlin中的边属性,graph,gremlin,janusgraph,Graph,Gremlin,Janusgraph,质疑 输出 g.withSack(0).V().hasLabel('A').has('label_A','A').union(__.emit().repeat(sack(sum).by(constant(1)).in()),emit().repeat(sack(sum).by(constant(-1)).out())).project('level','properties').by(sack()).by(tree().by(valueMap().by(unfold())).unfold().u
g.withSack(0).V().hasLabel('A').has('label_A','A').union(__.emit().repeat(sack(sum).by(constant(1)).in()),emit().repeat(sack(sum).by(constant(-1)).out())).project('level','properties').by(sack()).by(tree().by(valueMap().by(unfold())).unfold().unfold())
查询只返回节点的属性。请修改查询,使其以树格式分别返回节点的属性和关系。如果要获取需要通过它们的边的属性,请将
中的和步骤拆分为outE().inV()
和inE().outV()
。然后,树步骤将考虑它们
此外,如果要在边上指定返回值,可以通过
调制器在树步骤中添加第二个
[
{
"level": 0,
"properties": {
"key": {
"label_A": "A"
},
"value": {}
}
},
{
"level": 1,
"properties": {
"key": {
"label_A": "A"
},
"value": {
"{label_B="B"}": {}
}
}
},
{
"level": 2,
"properties": {
"key": {
"label_A": "A"
},
"value": {
"{label_B=B}": {
"{label_C=C}": {}
}
}
}
},
例如:
g.withSack(0).V().hasLabel('material').
has('label_A', 'A').union(
__.emit().repeat(sack(sum).
by(constant(1)).
inE().outV()),
emit().repeat(sack(sum).
by(constant(-1)).
outE().inV())
).
project('level', 'properties').by(sack()).
by(tree().
by(valueMap().by(unfold())).
by(valueMap()))