我正在使用Cloudant NoSQL数据库,每15秒收到一次数据,因此每隔5分钟就会有数据库上有20个文件。
我需要获取时间戳为五分钟的文档,例如带有时间戳的文档:"2017-03-14 T 18:21:58"
和
带有时间戳的文件:"2017-03-14 T 18:26:58"
等等......
示例文件:
答案 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/