示例数据:TinkerPop Modern
必需的数据格式:
{'relation': '['created']', 'id': [10224, 10220], 'title': ['Marko', 'lop']}
{'relation': '['knows', 'created']', 'id': [10224, 10226, 10222], 'title': ['Marko', 'Josh', 'ripple']}
{'relation': '['knows', 'created']', 'id': [10225, 10224, 10220], 'title': ['Vadas', 'Marko', 'lop']}
{'relation': '['knows', 'knows', 'knows', 'created']', 'id': [10225, 10224, 10226, 10222], 'title': ['Vadas', 'Marko', 'Josh', 'ripple']}
{'relation': '['created']', 'id': [10226, 10220], 'title': ['Josh', 'lop']}
{'relation': '['created']', 'id': [10226, 10222], 'title': ['Josh', 'ripple']}
{'relation': '['created']', 'id': [10227, 10220], 'title': ['Peter', 'lop']}
{'relation': '['created', 'knows', 'created']', 'id': [10227, 10220, 10226, 10222], 'title': ['Peter', 'lop', 'Josh', 'ripple']}
查询:
g.V().hasLabel("Person").as("from")
.repeat(both().as("to").dedup("from", "to"))
.emit(hasLabel("Software"))
.hasLabel("Software")
.project("title", "relation", "id")
.by(path().by("name"))
.by(constant("r"))
.by(path().by(id()))
问题:
我找不到一种方法来获取遍历的边缘以获得结果Vertex。任何出路?我尝试了两个E()。bothV(),但不仅限于遍历
答案 0 :(得分:1)
首先,您必须使用bothE().otherV()
而不是both()
来遍历边缘。但是,这也会改变路径,因此您需要在查询中调整更多内容:
g.V().hasLabel("person").as("from","v").
repeat(bothE().as("e").otherV().as("v").dedup("from", "v")).
emit(hasLabel("software")).
hasLabel("software").
project("title", "relation", "id").
by(select(all, "v").unfold().values("name").fold()).
by(select(all, "e").unfold().label().fold()).
by(select(all, "v").unfold().id().fold())
答案 1 :(得分:-1)
PipeFunction" enablePath()"应该为你这样做。见文档。