4

次のように、couchdb にいくつかのドキュメントがあるとします。

{ page: 'home', country: 'EN', timestamp: 15448 }
{ page: 'search', country: 'FR', timestamp: 15448 }
{ page: 'search', country: 'EN', timestamp: 15448 }
{ page: 'home', country: 'DE', timestamp: 15457 }

各ドキュメントは、特定のタイムスタンプを持つ国のページビューを表します。私がしたいのは、特定のページとタイムスタンプ範囲についてこれらのドキュメントをクエリし、その範囲の国ごとのページビュー数を取得することです。

私が思いついたのは、このマップ機能です

function (doc) {
  emit([doc.page, doc.timestamp, doc.country], 1)
}

そして_sumreduce関数として。

たとえば、ビューをクエリできます。startkey=["home",15448]&endkey=["home", 15448, {}]しかし、これは国ごとの 1 日あたりのページビューを返します。これは必要以上の情報です。(特定の期間の国ごとのページビューのみ)。

4

1 に答える 1

2

ジャスト・ダン・エミット・ザ・カントリー

function (doc)
{
  emit([doc.page, doc.timestamp], 1)
}

関数を減らす

function (keys, value)
{
  return sum(value);
}
于 2012-07-26T18:37:12.883 に答える