Gremlin 查询以获取边等于 2 的顶点

Gremlin query to get vertices which are having edges equal to 2

考虑一下从 v1 到 v5 我有大约 5 个顶点。并且在它们之间有边缘。结构如下。

v1->v2
v1->v3
v4->v2
v2->v1
v2->v3
v3->v5
v5->v1

现在我想写一个 gremlin 查询来显示出边为 2 的顶点。

例如 v1 有 2 个出向 v2 和 v3 的边缘所以这里的查询应该显示 v1,v2,v3

有几种方法可以做到这一点。您可以只获取所需的所有节点,而无需任何有关它们来自何处的信息

g.V().where(out().count().is(2)).union(identity(), out())

这会 return

==>v[1]
==>v[2]
==>v[3]

或者你可以获得所有到出边的路径。这将让您显示哪些计数为 2。

g.V().where(out().count().is(2)).out().path()

哪个会给你

==>[v[1], v[2]]
==>[v[1], v[3]]

请记住,随着图形的增长,这会变得更慢,因为它将访问图形中的每个顶点。

为了将来参考,您应该展示到目前为止您尝试过的示例以及所需的输出。它使帮助变得更容易。