Query Cloudant NoSQL database with respect to time intervals
我正在Cloudant NoSQL数据库上工作,每15秒接收一次数据,因此每5分钟将在数据库上有20个文档。
我需要获取时间戳相差五分钟的文档,例如带有时间戳的文档:
带时间戳的文档:
示例文档:
在时间戳上键入一个视图。我将您的问题解释为"让所有20个文档共享一个特定的时间戳"。如果是这种情况,您可以不用解析时间戳就可以摆脱:
1 2 3 4 5 | function(doc) { if (doc && doc.timestamp) { emit(doc.timestamp, 1) } } |
您现在可以查询视图:
1 | % curl 'https://USER:[email protected]/DATABASE/_design/DDOC/view/VIEWNAME?key=TIMESTAMP&include_docs=true&limit=20' |
将大写位替换为系统的相关名称和参数。
如果您需要更好的查询粒度(时间序列样式),可以从Cloudant创始人之一那里找到有关该主题的旧但有用的博客:https://cloudant.com/blog/mapreduce-from实际有用的基础/