【问题标题】:Couchbase range queryCouchbase 范围查询
【发布时间】:2015-06-19 08:46:40
【问题描述】:

我有 testa couchbase 4 服务器,用于存储传感器测量数据。

我有以下看法:

function (doc, meta) {
  if (doc.aks) {
    emit([doc.aks, doc.timestamp], {
      value: doc.value,
      status: doc.status
    });
  }
}

这里是一个示例文档:

{
   "timestamp": 1199180981,
   "value": 0,
   "status": 2147483650,
   "aks": "BN028:H23:VS:001:Zustand"
}

我现在尝试对这个视图进行以下查询: 给我单个传感器的值的时间范围。

/_view/timeline?stale=false&startkey=["BN020:H03:ZW:102:MC_t_return",12675419334]&endkey=["BN020:H03:ZW:102:MC_t_return",13675419334]

但这不会产生任何结果。

如果我只使用 startkey= 或 endkey= 我会得到结果,但如果我同时使用两者则不会。 我怎么了?

【问题讨论】:

    标签: couchbase couchbase-view


    【解决方案1】:

    确保您的存储桶中确实有属于您范围内的数据。我使用了您的视图和查询并收到了结果。您的示例文档不在范围内,aks 错误且时间戳太早。如果您添加的文档在该范围内,您应该会收到它。这是您范围的下限:

    {
        "timestamp": 12675419334,
        "value": 0,
        "status": 2147483650,
        "aks": "BN020:H03:ZW:102:MC_t_return"
    }
    

    【讨论】:

    • 我通过未设置 (start|end)key= 检查了这个 allreay
    • 抱歉,我在答案中发布了不正确的文档,我只是使用代表查询下限的文档对其进行了编辑。如果我的存储桶仅包含您作为示例发布的文档,那么运行您的查询将不会返回任何结果。将我的答案中的文档添加到存储桶中,然后在运行您的查询时收到它。您的视图和查询工作。你有任何错误吗?还是查询成功但没有结果?你能运行一个小测试:运行没有 startKey 或 endKey 的查询,然后使用你得到的结果之一作为 startKey 和 endKey?
    猜你喜欢
    • 1970-01-01
    • 2019-05-20
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    相关资源
    最近更新 更多