gremlin-python-获取大于两条边的节点

akr*_*iti 1 gremlin jupyter-notebook amazon-neptune gremlinpython

我目前正在使用 gremlin-python 来研究图表。我想获得具有两个以上出边的所有顶点。我正在使用匿名遍历根据边缘计数过滤掉用户,但下面是我得到的错误。

AttributeError: 'list' 对象没有属性 'out'

我对此很陌生,不确定我在这里做错了什么。这是可用的有限 gremlin-python 教程/文档中描述的方式。

Jupyter NB 外壳的屏幕截图。

Kel*_*nce 5

如果您可以包含一个代码片段,显示您使用的导入以及查询,那将会很有帮助。在你的 Python 代码中,你记得导入这个类吗?

from gremlin_python.process.graph_traversal import __
Run Code Online (Sandbox Code Playgroud)

我可以使用我的图表之一毫无问题地运行您的查询

g.V().hasLabel('airport').where(__.out().count().is_(P.gte(2))).count().next()
Run Code Online (Sandbox Code Playgroud)

如果您没有该导入,您将看到与您所看到的类似的错误。

在此位置使用 gremlin-python 时,有一个最常用的导入列表

编辑添加:

正如斯蒂芬在下面的评论中指出的那样,您只需要知道是否至少有两个传出边缘,您就可以通过添加一个limit步骤来减少查询引擎必须做的工作(某些优化器可能不需要这样做)。

g.V().hasLabel('airport').where(__.out().limit(2).count().is_(P.gt(1))).count().next()
Run Code Online (Sandbox Code Playgroud)