2

这是文档“模式”

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

有很多这样的文件,在过去和未来有很多有效日期,而且很多时候在同一个月有两个或三个报价。我找不到做出以下观点的方法:给定一个日期,给我一份产品列表及其在该日期的运行报价。

我想我需要发出该valid_date字段才能将查询的 endkey 设置为给定的日期,然后我需要减少该字段的最大值,这意味着我不能发出它。

我是不是搞错了?我对 map/reduce 概念完全陌生。关于如何做的任何建议?

4

1 回答 1

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
于 2012-07-24T04:03:49.870 回答