【问题标题】:Functions in OrientDB Studio - what is the correct syntax?OrientDB Studio 中的函数 - 正确的语法是什么?
【发布时间】:2015-05-25 18:14:20
【问题描述】:

我们花了一些时间尝试在工作室中实现简单的功能,但缺乏文档以及看似不断变化的语法使事情变得相当困难。即:orient.getGraph() 函数似乎适用于 2.0.3,但不适用于 2.0.9 或 2.1-rc2。

这是我们目前在 2.0.3 上运行的代码:

var mydb = orient.getGraph();

var nearbyNodes = mydb.command('sql',"select in('Contributes_To') from " +originNode);

return nearbyNodes;

返回:

[
    {
        "@type": "d",
        "@rid": "#-2:0",
        "@version": 0,
        "in": [
            "#13:1",
            "#13:0",
            "#13:3"
        ],
        "@fieldTypes": "in=z"
    }
]

我想从“in”键中获取值。

问题 1 - OrientDB 中的 JavaScript Studio Functions 是否有更新且可靠的文档源?

问题 2 - 对较新版本(2.0.9 和 2.1-rc2)执行 SQL 命令的正确方法是什么?上面的示例似乎不适用于新版本。

问题 3 - 处理返回对象的正确方法是什么?正如它所解释的here 似乎不起作用

谢谢

【问题讨论】:

    标签: javascript orientdb


    【解决方案1】:

    我还尝试查找有关 JavaScript API 的文档。然而,在我的研究中,我实际上进入了负责管理 OrientDB 中脚本的代码。

    对于 Graph DB,管理脚本的类是 com.orientechnologies.orient.graph.handler.OGraphServerHandler。如果您查看this line,您会看到变量“orient”被绑定到OScriptGraphOrientWrapper的实例

    OScriptGraphOrientWrapper(上面给出的javadoc链接)你可以看到getGraph()方法实际上返回了OScriptGraphWrapper的一个实例

    总之,当您实际执行一个 JavaScript 函数时,实际调用的是上述 Java 类(以及更多)中的方法。因此,您可以引用这些类中可用的任何方法,尤其是 OScriptGraphWrapper,并且您可以处理这些类中方法的实际返回类型。

    我更喜欢 OrientDB 中的文档数据库,这个技巧实际上对我有用。换句话说,JavaDoc 是 API 文档。希望这对你有用。

    干杯!

    欧米茄

    【讨论】:

    • 感谢欧米茄!这已经有些帮助了。我可以通过 mydb.command("sql","select...", []) 查询最近的邻居但是我在尝试做一些简单的事情时仍然遇到问题,比如在里面更改一个简单的 INT 参数每个返回的节点。关于使用哪个功能的任何提示?我尝试使用 mydb.command("sql", "update...", []) 但我无法将返回的顶点 ID 注入到选择中。
    • 我试图更新 GreatfulDeadConcerts 数据库中某个顶点的 int 值。以下是代码
      var db = orient.getGraph(); var result = db.command("sql", "SELECT FROM V WHERE @rid = #9:2"); print(result[0].getRecord().field("@rid")); db.command("sql", "UPDATE V set performances = 10 WHERE @rid = " + result[0].getRecord().field("@rid"));
    • 您可以(并且应该!)直接通过其@rid 指定节点,而不是 V。 db.command("sql", "UPDATE " + result[0].getRecord().field("@rid") + " set performances = 10");
    猜你喜欢
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 2011-10-24
    • 1970-01-01
    • 2014-04-19
    • 2018-11-14
    相关资源
    最近更新 更多