在服务器端函数

问题描述

我们正在为一个 POC 项目试验 OrientDB。 我们想要实现一个简单的搜索服务器端功能

计划是接收一个字符串数组作为输入参数,传递给查询并返回结果(防止sql注入)

这是我们服务器端功能一个片段

var ids = (idsInput) ?  JSON.parse(idsInput) : null; // ids will be an array of string like ["#75:0"]

var g = orient.getDatabase();
var sql = "select * from Article where in() CONTAINS ?";

return  g.query(sql,ids);

主要思想是获取链接到所有(不是任何)提供的 id(在参数中)的所有文档(文章类型)。

问题是 CONTAINS 不适用于字符串数组。

select * from Article where in() CONTAINS [#75:0] // works 

select * from Article where in() CONTAINS ["#75:0"] // dose not work !

我们看到它的方式有两个选择:

  1. 将 id 转换为 ORecordId 数组
  2. 更改查询,以便将“in()”部分转换为字符串数组

我们无法以任何方式做到这一点。

非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)