繁体   English   中英

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

[英]gremlin-python-gets nodes with greater than two edges

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

AttributeError: 'list' object 没有属性 'out'

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

Jupyter NB shell 的屏幕截图。

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

from gremlin_python.process.graph_traversal import __

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

g.V().hasLabel('airport').where(__.out().count().is_(P.gte(2))).count().next()

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

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

编辑添加:

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

g.V().hasLabel('airport').where(__.out().limit(2).count().is_(P.gt(1))).count().next()
from gremlin_python.structure.graph import Graph
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection


graph = Graph()
graph_db_uri = 'ws://localhost:8182/gremlin'

      
g = graph.traversal().withRemote(DriverRemoteConnection(graph_db_uri,'g'))
c=g.V().hasLabel('node_name').count().next()
print(c)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM