2

ドキュメントの「スキーマ」は次のとおりです。

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

過去と未来の多くの有効な日付と、同じ月に 2 つまたは 3 つのオファーを含む多くのドキュメントがあります。次のビューを作成する方法が見つかりません:日付が与えられたら、製品のリストとその日付で実行中のオファーを教えてください。

valid_dateクエリのエンドキーを指定された日付に設定するには、フィールドを発行する必要があると思います。次に、このフィールドの最大値を減らす必要があります。つまり、発行できません。

私はそれを間違えましたか?私はマップ/リデュースの概念にまったく慣れていません。それを行う方法に関する提案はありますか?

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 に答える