1
var couchdb = require("couchdb-api");
var server = couchdb.srv(localhost, 5984, false, false);
var db = server.db("test");
var doc = db.doc("d5e1d042d579fcb1b3d4df07bc001f74");
doc.del(function (err, response) {
console.log(response);
console.log(err);
});

その後、私は問題に直面しています、

null
{ error: 'bad_request', reason: 'Invalid rev format' }

しかし、1-135dc47e3492a980fa45b3af9eb22a97 のような適切なリビジョンと適切なデータを持つ対応するドキュメント。

解決策を教えてください。

前もって感謝します。

4

1 に答える 1

5

私はこのモジュールの作成者です。ここでの問題は、リビジョン番号なしでドキュメントを削除しようとしていることです。(_rev文書には番号がありますcouchdb-apiが、その情報はありません) これらの条件下で他の書き込みを試みると、このエラーが発生します。

現在のところ、いくつかのオプションがあります。

書き込み/削除を試みる前に現在のドキュメントを取得する

doc.get(function (err, body) {
    doc.del(function (err, results) {
        // the delete will be successful
    });
});

書き込み/削除を試みる前にリビジョン番号を明示的に設定してください

doc.body._rev = "1-myrevisionnumber";
doc.del(...);

couchdb-apiここに、より適切なエラー メッセージを追加します。また、最新のリビジョン番号がなくても削除を「強制」するように指示する特別なフラグを追加することを検討しています。(つまり、MVCC を回避するためにget前に呼び出します)del

于 2012-05-05T14:23:49.773 に答える