ドキュメントを取得し、いくつかのフィールドを変更/挿入/削除して戻す必要があります。ナノのCouchDBドキュメントを更新する
"put"アクションには現在のドキュメントのリビジョンが必要ですが、ナノではパラメータとしてリビジョンを取得してドキュメントをデータベースに戻す機能が見つかりません。
nanoでこれを行うにはどうすればよいですか?
ドキュメントを取得し、いくつかのフィールドを変更/挿入/削除して戻す必要があります。ナノのCouchDBドキュメントを更新する
"put"アクションには現在のドキュメントのリビジョンが必要ですが、ナノではパラメータとしてリビジョンを取得してドキュメントをデータベースに戻す機能が見つかりません。
nanoでこれを行うにはどうすればよいですか?
注:これは一般的なアルゴリズムであり、nano's insert()
メソッドはドキュメントの更新用に自動化されたものを提供していないため、ライブラリに固有のものではありません。
現在のリビジョンを保存し、変更を適用し、保存されたリビジョン番号のドキュメントを送信しようとします。
ドキュメントが変更されたときに発生する可能性がある409の競合応答を処理してください。
この場合、ドキュメントを再フェッチし、リビジョン番号を保存し、変更を再度適用して、新しいリビジョンで再度送信してください。の場合はステップ1に
はアルゴリズムがありますa 409
チェックアウトその問題の詳細については、とCouchDBのReplication and Conflicts wikiページを参照してください。また、How To Update A Document With Nano (The CouchDB Client for Node.js)が役に立ちます。
私はリビジョンが必要であることを知っています。問題は、ナノにおける「リビジョン」議論を伴う機能である。正解ですが別の質問です。 – DSblizzard
あなたの質問に対しても正しい答えです。 [nanoのドキュメントAPI](https://github.com/dscape/nano#document-functions)のドキュメントを読んでください。挿入するドキュメントに適切なリビジョンを設定しなければならないことを意味する 'inser()'メソッドだけがあります。 –
コードを表示できますか? – DSblizzard