2016-10-07 12 views
0

このアプローチをCouchDBのドキュメントで使用してページネーションを実行しています。 CouchDBのページ番号付けとソート

  • 表示rows_per_page行、ストア+ 1行目のページ情報として
  • next_startkeyようnext_startkey_docid、 にNEXT_ *値をstartkeyを維持しnext_startkey
  • 使用ビューから

    • 要求rows_per_page + 1行次のリンクを作成し、他のリンクを使用して前のリンクを作成する

    このアプローチを使用してソートを行う方法各文書に最後に更新されたタイムスタンプがあり、IDを使用してソートするのではなく、そのフィールドを使用してソートする必要があります。

  • 答えて

    0

    まず、並べ替えは常にKEYSにあります。 _all_docsを照会すると、キーが_idであるテーブルが照会されます。

    [ 
        { 
        "key": "my_first_id", 
        "value": {} 
        }, 
        { 
        "key": "my_second_id", 
        "value": {} 
        } 
    ] 
    

    ですから、 _id よりも別のフィールドでソートしたい場合は、地図を使用する必要があります/あなたは鍵がupdatedAtフィールドでビューを作成することができ、例えば、(Views)を削減します。 これは、このようなものになるでしょう:

    [ 
        { 
        "key": "1475858068", 
        "value": {} 
        }, 
        { 
        "key": "1475553268", 
        "value": {} 
        } 
    ] 
    

    ので、並べ替えを使用して、キーをソートしてしまう:)

    +0

    私は申し訳ありませんが、私はあなたが、全体としての質問を理解しないと思います。はい、あなたのソリューションは動作しますが、私が達成したいのはsort + paginationです。上で説明したページネーション手法では、次のページのブックマークとしてservにユニークな「キー」が必要で、単にタイムスタンプだけをキーとして使用することはできません。 –

    +0

    [here](http://docs.couchdb.org/ja/2.0.0/couchapp/views/pagination.html)に記載されているように改ページテクニックがあります。それらのすべてを私のソリューションで使用することができます。ビューを持っているときは、常に最小3つのプロパティ(ID、キー、値)があります。ビューを使用すると、正しくソートすることができるようになります**と**ページ設定のための最後のIDを取得する可能性がまだあります。 –

    関連する問題