按日期查询 Orion Context Broker

Query Orion Context Broker by Dates

我尝试在 Orion 0.24 中按日期间隔查询但没有成功。

致电:

URL: http://<some-ip>:<some-port>/v2/entities?type=some-entity

给出:

[
  {
    "id": "some-id",
    "type": "some-entity",
    "coordenadas": {
      "type": "geo:point",
      "value": "43.7723705, -7.6784461"
     },
     "fecha": {
       "type": "date",
       "value": "2015-08-21T22:00:00.000Z"
     },
 },
 {
    "id": "some-id",
    "type": "some-entity",
    "coordenadas": {
       "type": "geo:point",
       "value": "43.6850207, 7.5716216"
    },
    "fecha": {
        "type": "date",
        "value": "2015-09-09T22:00:00.000Z"
    }
  }
]

然后我按日期区间查询的方式如下:

呼叫 1:

http://<some-ip>:<some-port>/v2/entities?type=some-entity&q=fecha==2015-08-01T22:00:00.000Z..2015-08-30T22:00:00.000Z

呼叫 2:

http://<some-ip>:<some-port>/v2/entities?type=some-entity&q=fecha==1441065601..1443657601

两个调用都以 200 代码和负载 [] 响应。我还尝试了其他运算符'>','<',结果相同。

编辑

我在 属性 'fecha' 上尝试了 '==' 并且效果很好:

呼叫 3:

http://<some-ip>:<some-port>/v2/entities?type=some-entity&q=fecha==2015-08-21T22:00:00.000Z

documentation中说我们可以存储日期,所以我这样做了。我应该将它们存储为数字吗?

谢谢

首先,关于文档,我想在 http://telefonicaid.github.io/fiware-orion/api/v2/ 发表以下评论:

This is a work in progress and is changing on a daily basis

这意味着在 NGSIv2 完成之前,文档和 Orion 实现之间主要会发生一些不同步(文档使用比实现更高级)。

关于这个具体问题,范围、< 和 > 过滤器将在末尾使用带有日期的 Orion,但在 0.24.0 中尚不可用。在 0.24.0 中,这些过滤器仅适用于数字,因此,作为临时解决方法,您可以将日期存储为时间戳数字(例如 2015-01-01 等于 1420070400,以下页面可能会有所帮助:http://www.timestampgenerator.com)。

编辑:日期过滤器支持已在 Orion 0.28.0 中实现,因此从那时起您就可以进行如下查询:

GET /v2/entities?q=birthdate>2016-02-24T10:00:00.00Z
GET /v2/entities?q=birthdate==2016-02-23T10:00:00.00Z..2016-02-24T10:00:00.00Z

另请注意,您可以使用 dateCreateddateModified 来表示实体创建和修改时间,例如:

GET /v2/entities?q=dateCreated>2016-02-24T10:00:00.00Z
GET /v2/entities?q=dateModified==2016-02-23T10:00:00.00Z..2016-02-24T10:00:00.00Z