不分离reduce键的CouchDB视图映射函数

时间:2012-07-23 08:33:26

标签: couchdb mapreduce

这是doc “schema”

{
    type: "offer",
    product: "xxx",
    price: "14",
    valid_from: [2012, 7, 1, 0, 0, 0]
} 

有很多此类文件在过去和未来都有许多有效日期,很多时候在同一个月有两三个优惠。我无法找到一种方法来制作以下视图:给定一个日期,给我一个产品列表以及它们在该日期的运行报价。

我认为我需要发出valid_date字段才能将查询的结束键设置为给定日期,然后我需要减少此字段的最大值,这意味着我无法发出它

我弄错了吗?我对map / reduce概念完全陌生。有关如何做的任何建议吗?

1 个答案:

答案 0 :(得分:0)

我真的被你的评论想要减少,根据你的要求你想要一个地图功能 - 没有减少。这是基于您要求的地图功能:

function(d) {
  if( d.type === 'offer' ) {
    var dd = d.valid_from;

    dd[1] = ( '0' + ( dd[1] + 1 )).slice(-2);   // remove the +1 if 7 is July not August
    dd[2] = ( '0' + dd[2] ).slice(-2);

    emit( dd.slice(0,3).join('-') );
  }
}

然后,为了显示在某一天有效的所有优惠,您可以使用以下参数查询此视图:

endkey="2012-08-01"&include_docs=true