TinkerPop Gremlin:供应商无关的顶点ID

时间:2018-06-20 11:36:31

标签: orientdb gremlin gremlin-server

摘要

我正在编写一个gremlin脚本,可同时用于Orientdb和neo4j。

对于一个示例,可以说我们想用id 1加载顶点 对于neo4j,我们将把gremlin脚本编写为 g.V(1)和orientDB g.V('#17:0')

这样我的脚本应该同时在两个数据库上运行?

1 个答案:

答案 0 :(得分:2)

您不能拥有独立于供应商的元素标识符,因为大多数图形系统不允许您分配标识符,而Neo4j或OrientDB都不允许这样做。无论如何,您可能都不应该在代码中对标识符进行硬编码,因为我相信,根据图形系统的不同,标识符可能会在您的身下改变。

正确的方法是依赖索引,而更喜欢将遍历写为:

g.V().has('myId', 1234)

在这种情况下,任何图形数据库都可以解决该问题。如果您确实使用本机图形标识符,则建议您始终将其视为代码中的变量,如:

Object vid = g.V().has('myId', 1234).id().next()
...
g.V(vid).out().....