无法通过 ID 访问特定顶点,在 Gremlin 控制台中使用 TinkerGraph
Cannot access specific vertex by ID, using TinkerGraph in Gremlin Console
我无法通过执行 g.V(3640).valueMap(true).unfold()
select 特定顶点。在 g.V()
命令的括号之间包含 ID 的任何命令似乎都不起作用。
这是我所做的:
我是图形数据库的新手,正在尝试使用 Gremlin 控制台。我首先创建了一个实例:
graph = TinkerGraph.open()
g=graph.traversal()
并通过导入 .graphml
数据库文件加载示例数据:
g.io(graphml()).readGraph('/full/path/to/air-routes-latest.graphml')
这似乎工作正常,因为计数返回了一个不错的结果
gremlin> g.V().count()
==>3642
很遗憾,以下内容不起作用:
gremlin> g.V(3640).valueMap(true).unfold()
我认为这很奇怪,因为通过执行以下
gremlin> g.V()
==>v[3640]
==>v[2306]
...
ID 似乎确实存在。为什么我无法访问特定 ID 有什么想法吗?我尝试了不同的命令,但 g.V()
似乎工作正常,而 g.V(3640)
没有。是因为我使用 TinkerGraph 而不是 Gremlin 数据库,可能是什么问题?
编辑:
似乎我的 ID 被保存为字符串,因为 g.V("2").valueMap(true).unfold()
确实给了我结果。
我认为您可能对标识符的 "type" 有疑问。我怀疑如果你这样做:
g.V(3640L)
你会得到你想要的顶点。默认情况下,TinkerGraph 使用 equals()
处理 id 相等性,因此如果您尝试在 id 很长时找到一个整数,它就会表现得好像它不存在一样。如果您喜欢讨论 here. Note that this is also discussed in more detail in Practical Gremlin.
的 IdManager
配置,您可以修改该默认值
我无法通过执行 g.V(3640).valueMap(true).unfold()
select 特定顶点。在 g.V()
命令的括号之间包含 ID 的任何命令似乎都不起作用。
这是我所做的:
我是图形数据库的新手,正在尝试使用 Gremlin 控制台。我首先创建了一个实例:
graph = TinkerGraph.open()
g=graph.traversal()
并通过导入 .graphml
数据库文件加载示例数据:
g.io(graphml()).readGraph('/full/path/to/air-routes-latest.graphml')
这似乎工作正常,因为计数返回了一个不错的结果
gremlin> g.V().count()
==>3642
很遗憾,以下内容不起作用:
gremlin> g.V(3640).valueMap(true).unfold()
我认为这很奇怪,因为通过执行以下
gremlin> g.V()
==>v[3640]
==>v[2306]
...
ID 似乎确实存在。为什么我无法访问特定 ID 有什么想法吗?我尝试了不同的命令,但 g.V()
似乎工作正常,而 g.V(3640)
没有。是因为我使用 TinkerGraph 而不是 Gremlin 数据库,可能是什么问题?
编辑:
似乎我的 ID 被保存为字符串,因为 g.V("2").valueMap(true).unfold()
确实给了我结果。
我认为您可能对标识符的 "type" 有疑问。我怀疑如果你这样做:
g.V(3640L)
你会得到你想要的顶点。默认情况下,TinkerGraph 使用 equals()
处理 id 相等性,因此如果您尝试在 id 很长时找到一个整数,它就会表现得好像它不存在一样。如果您喜欢讨论 here. Note that this is also discussed in more detail in Practical Gremlin.
IdManager
配置,您可以修改该默认值