I have a query like:
GraphTraversal t = graph.V().hasLabel("App").as("a")
.inE("RANKS").as("r")
.outV().as("k")
.choose(__.select("k").by("countryCode").is(__.in(...)),
__.math("1.0 / r").by("rank1"),
__.math("1.0 / r").by("rank2"))
.as("score")
...;
In here, I want to aggregate data like:
group by a.appId, k.countryCode, sum(score)
I tried like:
.group("a").by("appId").group("k").by("countryCode").by(...select("score").sum())
but this doesnt work.
Do you have any suggestion?
Solved like:
GraphTraversal t = graph.V().hasLabel("App").as("a")
.inE("RANKS").as("r")
.outV().as("k")
.choose(__.select("k").by("countryCode").is(__.in(...)),
__.math("1.0 / r").by("rank1"),
__.math("1.0 / r").by("rank2"))
.as("score")
.select("a", "k").by("appId").by("countryCode")
.group().by().by(__.select("score").sum().as("sum_score"))
Solved like:
GraphTraversal t = graph.V().hasLabel("App").as("a")
.inE("RANKS").as("r")
.outV().as("k")
.choose(__.select("k").by("countryCode").is(__.in(...)),
__.math("1.0 / r").by("rank1"),
__.math("1.0 / r").by("rank2"))
.as("score")
.select("a", "k").by("appId").by("countryCode")
.group().by().by(__.select("score").sum().as("sum_score"))