这是doc “schema”:
{
type: "offer",
product: "xxx",
price: "14",
valid_from: [2012, 7, 1, 0, 0, 0]
}
有很多此类文件在过去和未来都有许多有效日期,很多时候在同一个月有两三个优惠。我无法找到一种方法来制作以下视图:给定一个日期,给我一个产品列表以及它们在该日期的运行报价。
我认为我需要发出valid_date
字段才能将查询的结束键设置为给定日期,然后我需要减少此字段的最大值,这意味着我无法发出它
我弄错了吗?我对map / reduce概念完全陌生。有关如何做的任何建议吗?
答案 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