2017-01-22 103 views
0

的时间序列数据,我存储在MongoDB的传感器和事物的时间序列数据,我也跟着来存储数据的更新模型方法,下面是我所储存的样本JSONMongoDB中

Schema Design for Time Series Data in MongoDB

JSON模型

  • 文献通过小时(精细地具有用于分数据和第二)
  • phenomenonTime和thingsId将作为唯一键

样品

[ 
    { 
     "id": "58808b1819f61", 
     "phenomenonTime": "2017-01-19T5:00:00", 
     "observations": { 
      "0": { 
       "0": { 
        "location": { 
         "coordinates": [ 
          0.0066, 
          0.0009 
         ] 
        }, 
        "temperature": 20, 
        "device_id_gateway": "", 
       }, 
       "1": { 
        "location": { 
         "coordinates": [ 
          -0.0003, 
          0.0032 
         ] 
        }, 
        "temperature": 16, 
        "airSpeed": "" 
       }, ............. so on 

现在报告,我试图让下面的信息,但我没有得到查询这种方法

  • 如果是这样的传感器,在时间x获取数据( “2017-01-19T5:30:15”)?
  • 跟踪传感器的时间x和y即时间间隔之间的运动 “2017-01-19T5:30:15” 到 “2017-01-19T8:24:23”

能否请您帮助我明白,我怎么能得到这个信息

一些相关的问题

现在我从一个网关获取数据的多个设备,但我可以有多个网关,以便在这种情况下,请建议应该是什么模型

  • 单一网关 - 多设备
  • 多个网关 - 单设备
  • 多个网关 - 多设备
+0

当您更新时,旧数据将被删除。是吗 ? –

+0

不会删除它.. –

回答

0

要做到这一点,你可以在同一时间从每个设备的每个数据文件(数据)。回答你的问题,

  1. 这个传感器在x时间(“2017-01-19T5:30:15”)? 您可以按时间查询。

  2. 跟踪传感器在时间x和y之间的移动,即时间间隔“2017-01-19T5:30:15”到“2017-01-19T8:24:23”? Mongodb有查询时间间隔的功能,然后你可以对它进行排序。设计 - 在mongodb中忘记MYSQL我认为最好的模式是每个数据请求一个文档(模式每个设备,网关都在改变),您可以保留网关和设备的ID并保存在相关文档中。

+0

您有机会看https://www.mongodb.com//blog/post/schema-design-for-time-series-data-in-mongodb#comment- 3112273650 –