【问题标题】:How can I filter the data via date on RESTHeart如何通过 RESTHeart 上的日期过滤数据
【发布时间】:2017-02-15 07:37:42
【问题描述】:

我从 RestHeart API 服务获得以下数据。我尝试通过

过滤数据
filter={'header.timestamp.long':{'$gte': {'$date':'2017-02-14T19:00:00Z'}}}

filter={'header.timestamp.long.$numberLong':{'$gte': {'$date':'2017-02-14T19:00:00Z'}}}

但他们不工作。 回应是

{
  "_embedded": [],
  "_id": "logs_43990547141907029933",
  "_size": 0,
  "_total_pages": 0,
  "_returned": 0
}

我的 RestHeart 是 V3.0。

感谢您的帮助。

数据:

{
  "_embedded": [
    {
      "_id": {
        "$oid": "58a3ffc5e90174170ed22786"
      },
      "header": {
        "timestamp": {
          "long": {
            "$numberLong": "1487142853743"
          }
        }
      },
      "event": {
        "Measurements": {
          "lifevo.mead.smarthome.TemperatureData": {
            "Temperature": 23.977264
          }
        }
      }
    },
    {
      "_id": {
        "$oid": "58a3ffc2e90174170ed22785"
      },
      "header": {
        "timestamp": {
          "long": {
            "$numberLong": "1487142850744"
          }
        }
      },
      "event": {
        "Measurements": {
          "lifevo.mead.smarthome.TemperatureData": {
            "Temperature": 21.15203
          }
        }
      }
    },
     ......


 ],
  "_id": "logs_43990547141907029933",
  "_returned": 100
}

【问题讨论】:

  • 我也试试 filter={"header.timestamp": {"$gte": {"$date":"2017-02-14T00:00:00Z"}}},还是可以的没有得到任何数据
  • 我的MongoDB版本是3.2.11

标签: restheart


【解决方案1】:

您在 mongodb 中的属性不是数据类型,而是长数字。

不要在过滤器中使用 $date。

【讨论】:

  • 您好安德里亚,谢谢您的回答。我误解了 mongodb 中的 long 是日期。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-06
  • 2020-10-04
  • 1970-01-01
相关资源
最近更新 更多