2017-01-22 138 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 –