查找所有没有出边的顶点
Find all vertices with no out edges
我是 Gremlin 的新手,我想不出一个简单的查询来 return 我的图形中没有任何边的所有顶点(即:孤立的顶点)。理想情况下,我希望那些没有任何 'out' 优势。
我一直在阅读,有些人 questions/articles 说我可以将出边解释为 属性,但这对我也不起作用。我一直在看 hasNot 和过滤。
有什么想法吗?
谢谢
-约翰
试试这个:g.V().as('a').where(out().count().is(0)).select('a')
但是,根据您拥有的顶点数量,您可以 运行 进入请求率过大异常(又名 429)。
为避免这种情况,如果您知道顶点的 id 范围,则可以在范围内进行查询,或者它可以是其他 属性 范围。基于 id 范围的示例如下:
g.V().has('id', gt(0)).has('id', lt(100)).as('a').where(out().count().is(0)).select('a')
g.V().has('id', gt(99)).has('id', lt(200)).as('a').where(out().count().is(0)).select('a')
....
等等
您可以简单地这样做:
g.V().not(outE())
或者如果你想找到孤儿总数:
g.V().not(bothE())
我是 Gremlin 的新手,我想不出一个简单的查询来 return 我的图形中没有任何边的所有顶点(即:孤立的顶点)。理想情况下,我希望那些没有任何 'out' 优势。
我一直在阅读,有些人 questions/articles 说我可以将出边解释为 属性,但这对我也不起作用。我一直在看 hasNot 和过滤。
有什么想法吗?
谢谢
-约翰
试试这个:g.V().as('a').where(out().count().is(0)).select('a')
但是,根据您拥有的顶点数量,您可以 运行 进入请求率过大异常(又名 429)。
为避免这种情况,如果您知道顶点的 id 范围,则可以在范围内进行查询,或者它可以是其他 属性 范围。基于 id 范围的示例如下:
g.V().has('id', gt(0)).has('id', lt(100)).as('a').where(out().count().is(0)).select('a')
g.V().has('id', gt(99)).has('id', lt(200)).as('a').where(out().count().is(0)).select('a')
....
等等
您可以简单地这样做:
g.V().not(outE())
或者如果你想找到孤儿总数:
g.V().not(bothE())