摘要
我正在编写一个gremlin脚本,可同时用于Orientdb和neo4j。
对于一个示例,可以说我们想用id 1
加载顶点
对于neo4j,我们将把gremlin脚本编写为
g.V(1)
和orientDB g.V('#17:0')
。
这样我的脚本应该同时在两个数据库上运行?
答案 0 :(得分:2)
您不能拥有独立于供应商的元素标识符,因为大多数图形系统不允许您分配标识符,而Neo4j或OrientDB都不允许这样做。无论如何,您可能都不应该在代码中对标识符进行硬编码,因为我相信,根据图形系统的不同,标识符可能会在您的身下改变。
正确的方法是依赖索引,而更喜欢将遍历写为:
g.V().has('myId', 1234)
在这种情况下,任何图形数据库都可以解决该问题。如果您确实使用本机图形标识符,则建议您始终将其视为代码中的变量,如:
Object vid = g.V().has('myId', 1234).id().next()
...
g.V(vid).out().....