使用node-couchdb-api在couchdb中删除文档时出错

时间:2012-05-05 11:30:24

标签: node.js couchdb

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和正确的数据。

请提供解决方案。

提前致谢。

1 个答案:

答案 0 :(得分: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)