2015-05-21 32 views
0

我有Cloudant数据库,它实际上是couchdb。 我在我的文档中有一个日期字段,我需要获得类似于_stats在数字字段上提供的统计信息(例如,min,max,avg,count)。有没有办法在云中做到这一点?在日期生成统计功能

我在映射函数中将其转换为时间戳并将其发送以减少。这是正确的方法吗?

回答

0

CouchDB和Cloudant允许将日期索引为MapReduce索引中的复合键,例如生成这样的密钥:

[ 2014, 5, 21] 

其中数组的每个元素分别表示存储日期的年,月和日。

这可以在地图功能,像这样来实现:

function(doc) { 
    if (typeof(doc.date) === "string") { 
    var d = new Date(doc.date); 
    emit([ d.getFullYear(), d.getMonth()+1, d.getDay()], null); 
    } 
} 

随着_count减速器,该指数可以与group_level参数被用来产生时间序列的综合分析数据,如

  • 按年计算
  • 按月计算给定年份
  • 按天给定年份计数
  • 数按年,月&日

通过添加一个数值为emit的第二个参数,并使用_stats,时间序列统计数据可以从索引中容易地提取并如上分组。