标签: tinkergraph

在 Gremlin 中,map() 是如何工作的?

为什么这两者会产生不同的结果?

graph.traversal()
   .V().map(__.out("contains"))
.valueMap(true).next(100)
Run Code Online (Sandbox Code Playgroud)

相比

graph.traversal()
   .V().out("contains")
.valueMap(true).next(100)
Run Code Online (Sandbox Code Playgroud)

为什么我更喜欢使用 map 而不是直接调用 .out() 方法?这样我就可以组织我的代码,在那里我可以从方法中获取遍历并“映射”到现有的遍历。

java gremlin tinkergraph tinkerpop3

3
推荐指数
1
解决办法
3438
查看次数

无法通过 ID 访问特定顶点,在 Gremlin 控制台中使用 TinkerGraph

我无法通过执行来选择特定顶点g.V(3640).valueMap(true).unfold()。任何在命令中的括号之间包含 ID 的命令g.V()似乎都不起作用。

这就是我所做的:

我是图形数据库新手,正在尝试使用 Gremlin 控制台。我首先创建一个实例:

graph = TinkerGraph.open()
g=graph.traversal()
Run Code Online (Sandbox Code Playgroud)

并通过导入数据库文件加载示例数据.graphml

g.io(graphml()).readGraph('/full/path/to/air-routes-latest.graphml')
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,因为计数给出了很好的结果

gremlin> g.V().count()
==>3642
Run Code Online (Sandbox Code Playgroud)

不幸的是,以下内容不起作用:

gremlin> g.V(3640).valueMap(true).unfold()
Run Code Online (Sandbox Code Playgroud)

我认为这很奇怪,因为通过执行以下命令

gremlin> g.V()
==>v[3640]
==>v[2306]
...
Run Code Online (Sandbox Code Playgroud)

该 ID 似乎确实存在。为什么我无法访问特定 ID,有什么想法吗?我尝试了不同的命令,但g.V()似乎工作正常,但g.V(3640)事实并非如此。是否因为我使用 TinkerGraph 而不是 Gremlin 数据库,可能会出现什么问题?

编辑:

看来我的 id 被保存为字符串,因为g.V("2").valueMap(true).unfold()确实给了我结果。

graph gremlin tinkergraph tinkerpop3

3
推荐指数
1
解决办法
1129
查看次数

标签 统计

gremlin ×2

tinkergraph ×2

tinkerpop3 ×2

graph ×1

java ×1