2

Couchbase でいくつかのビューを照会すると、次の構造を持つ応答が得られます。

{
  "total_rows":100,
  "rows":[...]
}

「total_rows」は、ページングに使用できる非常に便利なプロパティです。しかし、'start_key' と 'end_key' を使用してビューのサブセットのみを選択するとしましょう。もちろん、このサブセットがどれだけ大きくなるかはわかりません。「total_rows」はまだ同じ数です(私が理解しているように、それはビュー全体の合計です)。サブセットで選択された行の数を知る簡単な方法はありますか?

4

3 に答える 3

0

効率的な方法でビューをページ分割する必要がある場合、実際には開始と終了の両方を指定する必要はありません。

通常、startkey/startkey_id と limit を使用できます。この場合、制限により、ページが既知のサイズよりも大きくならないことがわかります。

どちらのケースも CouchDB の本で説明されています: http://guide.couchdb.org/draft/recipes.html#pagination

仕組みは次のとおりです。

  1. ビューからrows_per_page + 1行をリクエスト
  2. rows_per_page 行を表示し、+ 1 行を next_startkey および next_startkey_docid として保存します
  3. ページ情報として、startkey と next_startkey を保持する
  4. next_* 値を使用して次のリンクを作成し、他の値を使用して前のリンクを作成します
于 2013-08-19T17:11:18.867 に答える