CouchDBのはとても新しいバージョンで(さんが「X」の_idを持つ文書を言わせて)文書を交換し、既存のリビジョンのを知っているあなたを必要とし、ツリー内の文書の改訂履歴を保持します_id/_revのペアを更新することができます。だから、
ドキュメントを更新する必要がある場合には「x」をあなたが変更されたドキュメントごとにこのGET/PUT操作を行うためにあなたの仕事を書き換えることができ
// fetch the document first
curl -X GET http://localhost:5984/mydb/x
{ "_id": "x", "_rev": "45-123", "name": "fred"}
// to be able to update it
curl -X PUT -d'{ "_id": "x", "_rev": "45-123", "name": "Fred Smith"}' http://localhost:5984/mydb/x
{ "ok": "true", "_id": "x", "_rev": "46-456"}
する必要があります。
新しいデータをインポートする前にデータを消去する必要がある場合は、単純に新しいデータベースを作成します。 "mydb2017-09-22"、それにデータをインポートし、真実のソースとして "mydb2017-09-22"を使用するためにデータを使用しているアプリケーションを指示します。これにより、前の正規データベースを安全に安全に削除できます。これにより、現在のソリューションの複製手順が回避されます。
パージは、現在のCouchDBではサポートされていません。これは、データが複製される実装を壊すためです。コンパクションは、不要な旧式のリビジョンの本体を削除してスペースを節約するためのものです。
あなたの問題に関するすべてのことを知らずに、インポートが完了したときに単にデータセットを切り替えることができ、古いデータベースを削除することでそれ自体をクリーンアップするので、 。
パージ+コンパクトで実行すると、ソフト削除とハード削除の問題が定期的に解決されますか? – Shard