如何使用orientjs对OrientDB执行Gremlin?

时间:2017-03-26 19:16:18

标签: node.js orientdb gremlin

在Node中,对数据库执行Gremlin查询的正确方法是什么?

我目前尝试使用Official Node OrientDB Driver

const { ODatabase } = require('orientjs');
const db = new ODatabase({...});
db.query('g.V()')
  .then(console.log, console.error);

我得到了:

OrientDB.RequestError: 
  Cannot find a command executor for the command request: sql.g.V()
  DB name="mynevo"
at child.Operation.parseError 
  (.../orientjs/lib/transport/binary/protocol33/operation.js:864:13)

但是,当我在网络界面中执行g.V()时,它可以完美运行。

显然,Node驱动程序或服务器假定查询应该是SQL。有没有办法告诉它是Gremlin,还是有其他方式?

2 个答案:

答案 0 :(得分:1)

您应该能够使用

执行gremlin命令

```

db.query('g.V()', { 
        language : "gremlin", 
        class : "com.orientechnologies.orient.graph.gremlin.OCommandGremlin"
    }).then(function(res){
        console.log(res);
    })

```

答案 1 :(得分:0)

对OrientDB执行gremlin查询的最简单,最快的方法是使用REST API(端口2480,而不是二进制端口2424)。 这是一个电话,我建议先在邮递员中尝试一下。

[POST] http://:2480 / command // gremlin

然后,请求正文可以如下所示:

{
    "command": "g.V().has('name', 'marko')"
}

将OrientDB凭据作为基本身份验证

在NodeJS / JavaScript中,只需使用超级代理或类似模块即可调用REST API。然后分析作为JSON返回的结果。

另请参阅: https://orientdb.com/docs/last/OrientDB-REST.html

在“命令”部分下查看