【问题标题】:How to determine if a vertex has odd or even number of outE()?如何判断一个顶点是outER()的奇数还是偶数?
【发布时间】:2016-11-25 06:30:43
【问题描述】:

我想得到边数为奇数的顶点。像这样的:

 g.V().where(out().count() % 2 != 0)

当然,这里不能使用%。有其他方法吗?

【问题讨论】:

    标签: gremlin


    【解决方案1】:

    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
    

    【讨论】:

      【解决方案2】:

      除法没有步骤,据我所知,模也没有,但您可以使用 lambda:

      g.V().outE().count().filter{count = it.get(); count % 2 == 1;}
      

      (请注意,在大多数系统中,此查询需要扫描整个图,因为没有使用索引。)

      Gremlin-users 组中的This post 包含有关 Gremlin 数学运算的更多信息。

      【讨论】:

        猜你喜欢
        • 2021-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-31
        • 2011-09-06
        • 2014-08-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多