【问题标题】:How to write old queries in new Gremlin 3.x syntax in javascript/typescript如何在 javascript/typescript 中以新的 Gremlin 3.x 语法编写旧查询
【发布时间】:2019-03-15 13:21:50
【问题描述】:

我需要在 JS/TS 中编写从 Gremlin 2.6 到 3.4 语法的旧查询,因为在 2.6 中我已经用字符串完成了所有操作,然后我执行了该字符串,但现在我想在可以使用链接方法的地方使用 3.4 语法.

首先我需要转换这个查询,但我不知道如何处理这个嵌套查询out().simplePath()label().is('Recording')

g.V().repeat(out().simplePath()).until(label().is('Recording'))

我正在考虑这样做,但我不确定这是正确的。

g.V().repeat(g.V().out().simplePath()).until(g.V().label().is('Recording'));

gremlin 中的函数之间也没有更多了,所以我怎样才能为这个旧函数获得相同的结果并在 js/ts 中编写它? (这只是查询的一部分)

.has('name', between('${partialPropertyName}', '${partialPropertyName}a'))

谢谢前面的各位。

【问题讨论】:

    标签: javascript typescript gremlin azure-cosmosdb-gremlinapi


    【解决方案1】:

    几个快速的答案。

    Gremlin 中还有一个between() 谓词。不知道你使用的数据库是否支持。

    为了你的重复,直到你能做到为止

    g.V().repeat(out().simplePath()).until(hasLabel('Recording'))
    

    TinkerPop 文档对所有这些步骤都有很好的示例。我建议快速阅读文档。也可以随意搜索“Practical Gremlin”,我有几个例子。

    编辑添加示例 JavaScript 导入

    const gremlin = require('gremlin');
    const Graph = gremlin.structure.Graph;
    const __ = gremlin.process.statics;
    const { t: { id },order,cardinality } = gremlin.process;
    

    再次编辑指出npm install gremlin 创建的gremlin 包的根目录中有一个index.js 文件。您还可以在 TinkerPop GitHub 存储库中找到此文件。

    干杯 开尔文

    【讨论】:

    • 我不能只输入 .repeat(out().simplePath()) 因为 JS 看不到 out() 函数。当我将鼠标悬停在 gremlin 导入时,我得到“找不到模块 'gremlin' 的声明文件”。这就是为什么我必须在 Typescript 中为 gremlin 创建自己的类型。
    • P.S.你的书真的很好,一定会检查的。一个缺点是我需要 JavaScript 代码,但我可以看到你是用 Java 和 Groovy 完成的。
    • 从 JavaScript 中导入必要的对象并使用 __.out()
    • 我在上面的答案中添加了一些示例导入
    • 当我导入或喜欢你写 require('gremlin') 时,我仍然看不到所有方法和类型。我可以做些什么来获取 JS 中 gremlin 的所有方法和类型?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 2023-03-20
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多