我试图在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中我们可以存储日期,所以我这样做了。我应该将它们存储为数字吗?
感谢
答案 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
另请注意,您可以使用dateCreated
和dateModified
来表示实体创建和修改时间,例如:
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