質問

function (doc) {
  if(doc.jsonType == 'cart') {
    if((Date.parse(doc.updated_at) + (15 * 60000)) >= Date.now()) {
      for(item in doc.items) {
        emit(item, doc.items[item].quantity);
      }
    }
  }
}

この関数を使用すると、最後の15分以内に更新されたドキュメント、たとえば2、数量1と2を取得し、合計として3になります。ただし、組み込みのreduce関数_sumを使用すると、32(既存のすべての行の合計)が得られます。

ビューを数回更新しましたが、それでも正しい結果が得られません。

どうしたの?

役に立ちましたか?

解決

それは間違っての使用です Date.now() map(およびreduce)関数で。Maps/reduceの結果は、クエリ時に高速に取得できるようにディスクに保存されます。の値 Date.now() あなたが得るのは、マップが作成されたときのものであり、照会されたときのものではありません。CochDBのマップがどのように動作するかについての入門資料を見つけることができます ウィキ決定版ガイド.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top