用例:获取节点的所有边,按标签分组,并按标签、显示名称和两者的计数对 otherV 分组。
图有以下节点:post、product、company。帖子有一个名为评论的产品和公司。
对于 postid,有没有办法获取按产品和公司分组的评论计数。
我想在表格中显示以下信息。
postid | 评论(计数)| 产品(计数) postid | 评论(计数)| 公司(数)
我试过outE(),out()带有groupby标签,但我似乎无法构建一个查询,该查询会给我多个groupby's的计数。
非常感激任何的帮助。
提前致谢。
graph = TinkerGraph.open()
g = graph.traversal()
v1 = graph.addVertex(id, 1, label, "post")
v2 = graph.addVertex(id, 2, label, "company")
v3 = graph.addVertex(id, 3, label, "company")
v4 = graph.addVertex(id, 4, label, "product")
v5 = graph.addVertex(id, 5, label, "product")
v1.addEdge("reviews", v2)
v1.addEdge("reviews", v3)
v1.addEdge("reviews", v4)
v1.addEdge("reviews", v5)
Run Code Online (Sandbox Code Playgroud)
我没有您在输出中要求的确切结构,但也许这对您的目的来说已经足够接近了,因为它确实返回了我认为您要求的数据:
gremlin> g.V().hasLabel('post').
......1> project('postid','reviews','types').
......2> by(id).
......3> by(outE().count()).
......4> by(out().groupCount().by(label))
==>[postid:1,reviews:4,types:[product:2,company:2]]
Run Code Online (Sandbox Code Playgroud)
另外一个选项:
gremlin> g.V().hasLabel('post').
......1> outE().as('e').
......2> inV().as('i').
......3> select('e','i').by(label).
......4> groupCount().by(select('e','i'))
==>[[e:rates,i:company]:2,[e:reviews,i:company]:2,[e:reviews,i:product]:2,[e:rates,i:product]:2]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3620 次 |
| 最近记录: |