查询Cloudant NoSQL数据库的时间间隔

时间:2017-03-15 06:05:47

标签: ibm-cloud cloudant nosql

我正在使用Cloudant NoSQL数据库,每15秒收到一次数据,因此每隔5分钟就会有数据库上有20个文件。

我需要获取时间戳为五分钟的文档,例如带有时间戳的文档:"2017-03-14 T 18:21:58"和 带有时间戳的文件:"2017-03-14 T 18:26:58"等等......

示例文件:

enter image description here

1 个答案:

答案 0 :(得分:2)

在时间戳上设置关键视图。我将您的问题解释为"让所有20个文档共享特定时间戳"。如果是这样的话,你就可以在不解析时间戳的情况下逃脱:

function(doc) {
    if (doc && doc.timestamp) {
        emit(doc.timestamp, 1)
    }
}

您现在可以查询视图:

% curl 'https://USER:PASS@ACCOUNT.cloudant.com/DATABASE/_design/DDOC/view/VIEWNAME?key=TIMESTAMP&include_docs=true&limit=20'

将大写位替换为系统的相关名称和参数。

如果您的查询需要更精细的粒度(时间序列样式),那么Cloudant创始人之一就此主题提供了一个古老但有用的博客:https://cloudant.com/blog/mapreduce-from-the-basics-to-the-actually-useful/