比较Gremlin Groovy中的顶点属性

use*_*334 2 groovy gremlin tinkerpop

我问的问题差不多就像你在这里看到的那样,但是必须使用groovy而不是java语法.理想情况下,答案非常简洁.

我有一个人顶点的简单图表.每个人都有一个"年龄"属性,列出该人的年龄.还有"worksFor"标记的边连接成对的顶点.我希望看到边缘两端的人具有相同年龄属性的所有边缘.

然后,我想要一个类似的查询,其中两个年龄相差不到3年.

如前所述,这应该是groovy,而不是Java语法.Gremlin 3是首选,但Gremlin 2的答案是可以接受的.

Dan*_*itz 7

边缘两端的人具有相同年龄属性的所有边

g.V().as("a").outE("worksFor").as("e").inV().as("b").select("a","b").by("age").
      where("a", eq("b")).select("e")
Run Code Online (Sandbox Code Playgroud)

两个年龄相差不到3年的地方

g.V().as("a").outE("worksFor").as("e").inV().as("b").select("a","b").by("age").
      filter {Math.abs(it.get().get("a") - it.get().get("b")) < 3}.select("e")
Run Code Online (Sandbox Code Playgroud)