Gremlin - 计算两个属性不同的边数
Gremlin - count number of edges where two properties differ
给定一个顶点 g.V(1)
,具有 x 条出站边。
假设 g.V(1)
在其每个出站边上具有属性 prop1
和 prop2
。
如何找到这两个属性不同的次数?
例如(假设有三个出站边缘),如果 g.V(1).outE().values('prop1')
returns:
==> A
==> B
==> C
如果g.V(1).outE().values('prop2')
returns:
==> A
==> D
==> E
我们应该得到 2 的答案:(B!=D, C!=E, but A==A)
类似于:
g.V(1).where(neq(outE().values('prop1'), outE().values('prop2'))).count()
(但实际上有效!)
在询问有关 Gremlin 的问题时,最好包含一些示例数据,如下所示:
g.addV().property('pid','a').as('a').
addV().property('pid','b').as('b').
addE('link').from('a').to('b').property('prop1','A').property('prop2','A').
addE('link').from('a').to('b').property('prop1','B').property('prop2','D').
addE('link').from('a').to('b').property('prop1','C').property('prop2','E').iterate()
您可以通过 where()
步骤来完成您想要的事情:
gremlin> g.V().has('pid','a').
......1> outE().as('compare').
......2> where('compare', neq('compare')).
......3> by('prop1').by('prop2').
......4> valueMap()
==>[prop2:D,prop1:B]
==>[prop2:E,prop1:C]
给定一个顶点 g.V(1)
,具有 x 条出站边。
假设 g.V(1)
在其每个出站边上具有属性 prop1
和 prop2
。
如何找到这两个属性不同的次数?
例如(假设有三个出站边缘),如果 g.V(1).outE().values('prop1')
returns:
==> A
==> B
==> C
如果g.V(1).outE().values('prop2')
returns:
==> A
==> D
==> E
我们应该得到 2 的答案:(B!=D, C!=E, but A==A)
类似于:
g.V(1).where(neq(outE().values('prop1'), outE().values('prop2'))).count()
(但实际上有效!)
在询问有关 Gremlin 的问题时,最好包含一些示例数据,如下所示:
g.addV().property('pid','a').as('a').
addV().property('pid','b').as('b').
addE('link').from('a').to('b').property('prop1','A').property('prop2','A').
addE('link').from('a').to('b').property('prop1','B').property('prop2','D').
addE('link').from('a').to('b').property('prop1','C').property('prop2','E').iterate()
您可以通过 where()
步骤来完成您想要的事情:
gremlin> g.V().has('pid','a').
......1> outE().as('compare').
......2> where('compare', neq('compare')).
......3> by('prop1').by('prop2').
......4> valueMap()
==>[prop2:D,prop1:B]
==>[prop2:E,prop1:C]