在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,还是有其他方式?
答案 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
在“命令”部分下查看