【发布时间】:2016-11-25 06:30:43
【问题描述】:
我想得到边数为奇数的顶点。像这样的:
g.V().where(out().count() % 2 != 0)
当然,这里不能使用%。有其他方法吗?
【问题讨论】:
标签: gremlin
我想得到边数为奇数的顶点。像这样的:
g.V().where(out().count() % 2 != 0)
当然,这里不能使用%。有其他方法吗?
【问题讨论】:
标签: gremlin
sack 没有 mod 运算符,但有 div、mult 和减号。
g.withSack(0).V().as('a').where(outE().count().sack(assign).sack(div).by(constant(2)).sack(mult).by(constant(2)).sack(minus).sack().is(0)) // even
g.withSack(0).V().as('a').where(outE().count().sack(assign).sack(div).by(constant(2)).sack(mult).by(constant(2)).sack(minus).sack().is(neq(0))) // odd
【讨论】:
除法没有步骤,据我所知,模也没有,但您可以使用 lambda:
g.V().outE().count().filter{count = it.get(); count % 2 == 1;}
(请注意,在大多数系统中,此查询需要扫描整个图,因为没有使用索引。)
Gremlin-users 组中的This post 包含有关 Gremlin 数学运算的更多信息。
【讨论】: