【问题标题】:Time series data in MongoDBMongoDB 中的时间序列数据
【发布时间】:2017-06-24 17:34:09
【问题描述】:

我在 MongoDB 中存储传感器和事物的时间序列数据,我遵循 UPDATE 模型方法来存储数据,下面是我存储的示例 JSON

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”

能否请您帮助我了解如何获取此信息

一些相关问题

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

  • 单网关 - 多设备
  • 多网关 - 单个设备
  • 多网关 - 多设备

【问题讨论】:

  • 更新时,旧数据会被删除。是吗?
  • 不..它没有被删除

标签: mongodb


【解决方案1】:

为此,您可以为每个数据(一次来自每个设备的数据)创建文档。要回答您的问题,

  1. 此传感器在时间 x("2017-01-19T5:30:15") 时在哪里? 您可以按时间查询。

  2. 跟踪传感器在时间 x 和 y 之间的移动,即时间间隔“2017-01-19T5:30:15”到“2017-01-19T8:24:23”? mongodb有能力查询时间间隔,然后你就可以排序了。

  3. 设计 - 忘记MYSQL,在mongodb中,我认为最好的模式是每个数据请求一个文档。(每个设备,网关的模式都在变化)并且您可以保留网关和设备的ID并保存在相关文档中。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
  • 2011-11-14
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多