按日期查询Orion Context Broker

时间:2015-09-17 12:53:35

标签: fiware fiware-orion

我试图在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个代码和有效负载[]。我还尝试了其他运营商&#39;&gt;&#39;,&#39;&lt;&#39;结果相同。

修改

我试过&#39; ==&#39;在物业&#39; fecha&#39;并且效果很好:

致电3:

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

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

感谢

1 个答案:

答案 0 :(得分:1)

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

  

这项工作正在进行中,并且每天都在变化

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

关于这个具体问题,范围&lt;和&gt;过滤器最终将与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