使用Gremlin javascript驱动程序连接到OrientDB

时间:2018-06-21 14:33:12

标签: orientdb gremlin tinkerpop tinkerpop3

我正在努力使用当前的gremlin javascript驱动程序和OrientDB查找示例。我无法连接到OrientDB(已经使用启用了tinkerpop的版本)。

我的示例代码如下:

const gremlin = require("gremlin")
const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection

const graph = new gremlin.structure.Graph()
const g = graph.traversal().withRemote(new DriverRemoteConnection('ws://localhost:8182/demodb'))

g.V().toList().then(function(data) {
   console.log(data)
}).catch(function(err) {
   console.log(err)
})

有人对将它们一起使用有任何经验吗?谢谢

3 个答案:

答案 0 :(得分:1)

如果要通过Gremlin连接OrientDB,请尝试以下操作:

Local -> gremlin> g = new OrientGraph("plocal:db_path/nomeDB")

In-Memory -> gremlin> g = new OrientGraph("memory:nomeDB")

Remote -> gremlin> g = new OrientGraph("remote:localhost/nomeDB")

希望有帮助

致谢

答案 1 :(得分:0)

我挖了一点。 Gremlin Javascript驱动程序不支持GraphSON3

https://github.com/jbmusso/gremlin-javascript/issues/109

将此添加到server.yaml序列化程序配置中,以添加对v2的支持

- { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.orientdb.io.OrientIoRegistry] }}  

然后它应该工作

答案 2 :(得分:0)

尝试一下:

import * as gremlin from 'gremlin';
const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection;

const authenticator = new gremlin.driver.auth.PlainTextSaslAuthenticator(<db username>, <db password>);
const traversal = gremlin.process.AnonymousTraversalSource.traversal;

const g = traversal().withRemote(new DriverRemoteConnection('ws://localhost:8182/gremlin', {
      authenticator: authenticator
    }));

请注意网址中的/gremlin,而不是/demodb。 要指向demodb或其他数据库,请从OrientDB修改demodb.properties文件夹中的config文件。

如果要创建另一个属性文件,只需记住在gremlin-server.yaml文件中指向它即可。