質問

私は、ビューは、「マップ」要求されたときにのみ、それが要求された最後の時間以降に追加されたドキュメント間で実行されていることをどこかで読んだと思いますか?これはどのように決定されますか?私は、シーケンス番号についての何かを見たと思いました。これはあなたが得ることができるものですか? _revフィールド上の末尾のUUIDのその一部ではないが、それはありますか?

(すべてのレコードにわたる)全体ビューの「再計算」を強制する

任意の方法?

役に立ちましたか?

解決

これに素晴らしいガイドですの技術概要で表示インデックスに関するセクションます。

ビュー・ビルダーは、ビューグループがデータベースに完全に最新であるかどうかを決定するためにデータベース・シーケンスIDを使用します。ない場合は、ビュー・エンジンは(パックされた順番に)すべてのデータベースのドキュメントを調べて最後のリフレッシュ以降に変更。文書は、彼らがディスクヘッドの頻度とコストを削減シーク、ディスク・ファイルで発生順に読み込まれます。
文書が検討されているように、それらが存在する場合、
、その前の行の値は、ビューのインデックスから削除されます。文書を表示する機能により選択された場合、関数の結果は、新しい行としてビュー内に挿入されている。

何ものかどうかを確認するためにCouchDBの最初のチェックは、(データベース内の任意のドキュメントへの変更がありますたびそれが更新される)シーケンスIDを使用して、データベース全体で変更されました。何かが変更された場合には、それらの文書を探して行くと、その上にマップ機能を実行します。

本当に(あなたががそれを使用するまで、それはビューを更新しないことに注意してください)あなたの文書を修正するとして、それはインクリメンタル更新されますので、あなたの意見を再生成/再構築する必要があるべきではありません。帽子(と私は良い方法があります確信している)のビューを記述した設計ドキュメントを削除し、設計文書は、通常の文書から(ほとんど)違いはありませんと見て、再びそれを挿入することです。一つの方法を述べた。

scroll top