1

OrientDB 允许通过使用 OrientDB Studio 中的“函数管理”来创建服务器端函数。我正在使用演示数据库并试图找出参数中的 id 是否存在于数据库中(简单的情况)。我的问题是如何检查查询结果是否为空?下面的代码和更多详细信息。

我在 JS 中有简单的功能:

var queryResult = db.query('select Name from Castles where Id=?',id);
if(queryResult == null){
    response.send(404,"Castle not found", "text/plain", "Error: Castle not found");
}else{
    return queryResult;
}

我的函数管理代码的图像: 函数体

当我使用参数 1 (id=1) 运行这个函数时,我得到了执行结果:

[ {“名称”:“圣天使城堡”}]

但是(这是一个问题)当我对参数 id=1234 执行相同操作时,我得到了:

[

]

在第二种情况下,我应该得到响应“错误:找不到城堡”。

我尝试将第二行代码更改为:

if(queryResult == undefined)
if(queryResult["Name"] == null)
if(queryResult.length == 0)
and so on...but the result is the same

我正在使用: Studio 版本:3.0.24 OrientDB 版本:3.0.24

我在文档中找不到如何检查 OrientDB 3.0.X 中的查询结果是否为空

提前致谢。

4

1 回答 1

0

看看这是否可以帮助你。这是相同的逻辑,但在 OrientDB-SQL 中实现:

    let $queryResult = select Name from Castles where Id = :id;
    if ($queryResult.size() = 0) {
        return "Error: Castle not found";
    }
    return $queryResult;

这应该给你:

select checkIfCastleExist(1): [ { "名称": "圣天使城堡" } ]

select checkIfCastleExist(1234): [ { "value":"Error: Castle not found" } ]

于 2019-12-10T11:50:47.780 回答