如何解决Gremlin 翻译器返回错误:“无法读取未定义的属性‘长度’”
我正在尝试使用此处描述的翻译器功能: https://tinkerpop.apache.org/docs/3.4.11/reference/#translators
我追溯到 Gremlin 源代码中的这一行: https://github.com/apache/tinkerpop/blob/b84c3ece2a584f6634f1586f4b84c4e1c349595d/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/translator.js#L53
看起来 instructions
返回未定义。
这是我正在测试的代码:
const traversal = g.V().hasLabel("user").limit(1);
const translator = new gremlin.process.Translator("g");
console.log(translator.translate(traversal));
"gremlin": "3.5.0"
正在发生这种情况。这是一个错误还是我错误地使用了这个功能?
解决方法
您正在按照文档说明进行操作,我认为这是应该使用 Translator
的理想方式,但 translate()
函数实际上需要一个 Bytecode
对象,因此正确的用法应该是:
const traversal = g.V().hasLabel("user").limit(1);
const translator = new gremlin.process.Translator("g");
console.log(translator.translate(traversal.getBytecode()));
因此,文档是错误的,因为它确实显示了所需的 API 而不是实际的 API。目前,您需要按上面所示调用它,但我已经为下一个版本推送了一个修复程序,允许按照文档中所示调用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。