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

Aru*_*i D 4 gremlin titan

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

v1->v2
v1->v3
v4->v2
v2->v1
v2->v3
v3->v5
v5->v1
Run Code Online (Sandbox Code Playgroud)

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

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

pan*_*nes 6

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

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

哪个会返回

==>v[1]
==>v[2]
==>v[3]
Run Code Online (Sandbox Code Playgroud)

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

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

这会给你

==>[v[1], v[2]]
==>[v[1], v[3]]
Run Code Online (Sandbox Code Playgroud)

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

为了将来参考,您应该展示到目前为止您尝试过的示例以及所需的输出。这样可以更轻松地提供帮助。