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即使它没有最新的修订号,它也会告诉“强制”删除。(即它会get在之前调用del以避免 MVCC)

于 2012-05-05T14:23:49.773 回答