如何在OrientDB中的自定义javascript函数中从JSON中提取查询结果

时间:2014-12-26 13:26:24

标签: javascript json orientdb

我在OrientDB Studio中创建了一个自定义javascript函数。该函数将rid作为参数并从该rid执行select查询。

var graph = orient.getGraph();
var res = graph.command( "sql", "select outE('Rel').inV('B').size() as lower_num from " + rid );

因此,此查询的结果是一个数字。根据此数字的值,函数应该执行不同的操作。我想知道如何从函数内的res变量中提取和使用该值。到目前为止,我的所有尝试都失败了。如果我从函数返回res变量,结果如下所示:

[
 {
   "@type": "d",
   "@rid": "#-2:1",
   "@version": 0,
   "lower_num": 2
 }
]

所以,我尝试了以下( res[0]['lower_num'] == 2 ); ( res['lower_num'] == 2 )并且没有任何效果......它们总是返回false。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

OrientDB将ODocument对象放在结果集数组中。所以试试这个:

return res[0].getRecord().field( "lower_num" );

答案 1 :(得分:0)

var jsonhelp= [ { "@type": "d", "@rid": "#-2:1", "@version": 0, "lower_num": 2 } ];

var extractedNumber = jsonhelp[0].lower_num;

现在你可以将它与你想要的任何东西进行比较;我希望它有所帮助

像这样,您可以提取JSON中的任何属性。

但是在javascript中有两种类型的比较

1) == simply compares values ,don't consider type
ex. '5' == 5 true , both are 5
     5 == 5 true.
2)=== considers type too
ex. '5' === 5 is false, different type i.e String === integer
     5 === 5 is true ,same type