Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gremlin:使用给定的标签和属性值计算出站边缘_Gremlin_Tinkerpop3 - Fatal编程技术网

Gremlin:使用给定的标签和属性值计算出站边缘

Gremlin:使用给定的标签和属性值计算出站边缘,gremlin,tinkerpop3,Gremlin,Tinkerpop3,我有一个图,其中顶点有几个出站边类型,每个边类型都有属性。我希望从每个顶点获取出站边的计数,但将计数限制为具有特定标签和属性值的边 到目前为止,我已经: g.V().hasLabel("vertexLabel").as("source") .outE("edgeLabel").has("edgeProp", "propValue").as("edge") .select("source", "edge") 这为我提供了每个源顶点和每个具有正确标签和属性的输出边的列表。我想做的是

我有一个图,其中顶点有几个出站边类型,每个边类型都有属性。我希望从每个顶点获取出站边的计数,但将计数限制为具有特定标签和属性值的边

到目前为止,我已经:

g.V().hasLabel("vertexLabel").as("source")
    .outE("edgeLabel").has("edgeProp", "propValue").as("edge")
    .select("source", "edge")
这为我提供了每个源顶点和每个具有正确标签和属性的输出边的列表。我想做的是,将每个源顶点和出站边数量的计数减少为一个条目。然而,我似乎无法让
groupCount
outE
一起工作。我得到的最接近的结果是:

g.V().hasLabel("vertexLabel").as("source").out("edgeLabel").groupCount()
这使我可以按源顶点计数,但包括带有该标签的所有边,而不管它们具有什么特性值

我知道这可能需要一个
group()

提前感谢。

使用TinkerPop的“现代”玩具图,我认为您可以通过使用
project()来表达这一点:

您也可以使用
groupCount()
来实现这一点,但我觉得有点尴尬:

gremlin> g.V().hasLabel('person').
......1>   outE('created').
......2>   has('weight',gt(0.5)).
......3>   groupCount().
......4>     by(inV())
==>[v[5]:1]
注意:在这种情况下,您将丢失“0”值,因为边在
groupCount()
之前被过滤掉。你也可以选择
group()
,但我认为它读起来不如
project()

gremlin> g.V().hasLabel('person').
......1>   outE('created').
......2>   has('weight',gt(0.5)).
......3>   groupCount().
......4>     by(inV())
==>[v[5]:1]
gremlin> g.V().hasLabel('person').
......1>   group().
......2>     by().
......3>     by(outE('created').
......4>        has('weight',gt(0.5)).count())
==>[v[1]:0,v[2]:0,v[4]:1,v[6]:0]