在Apigee App Services中,您可以查询数组元素吗?

时间:2014-02-19 01:53:00

标签: apigee

假设我有一个App Services实体,其中包含以下数据:

...
times: [
    "3/05/2014 18:00:00",
    "3/06/2014 16:00:00",
],
...

使用query operators,有没有办法引用数组中特定的编号元素?

我尝试了以下内容:

select * where times.0 > '3/05/2014 18:00:00' //this one returns no data
select * where times[0] > '3/05/2014 18:00:00' //this one fails with a java error

似乎如果数组中有一个元素,它只能用于:

select * where times > '3/05/2014 18:00:00'

...但如果有多个(如果我想检查特定编号的数组元素,则不会)。

1 个答案:

答案 0 :(得分:1)

使用Apigee的高级API服务,我能够毫无问题地查询此场景。我的/items集合中总共有5个实体,都有times数组。这些看起来像:

{
  "uuid": "65d39aba-8df4-11e3-8926-f36d6fff0de6",
  "type": "items",
  "name": "testItem5",
  "created": 1391556657115,
  "modified": 1392920493819,
  "description": "This is a test item 5.",
  "id": "0005",
  "metadata": {
    "path": "/items/65d39aba-8df4-11e3-8926-f36d6fff0de6"
  },
  "times": [
    "3/05/2014 18:00:00",
    "3/06/2014 16:00:00"
  ]
}

只有3个项目的值为> 3/05/2014 18:00:00。当我进行以下查询时:

/items?ql=select%20*%20where%20times%20%3E%20%273/05/2014%2018:00:00%27

或未转义

/items?ql=select * where times > '3/05/2014 18:00:00'

值高于3/05/2014 18:00:00的3个项目没有任何问题返回。