立即更新后,CouchDB会引发冲突错误

时间:2016-07-28 16:02:15

标签: couchdb

我使用CouchDB 1.5并尝试使用相当简单的请求修复文档中的某些值。我只需get一个文档,修改其中的值,然后立即put。鉴于我的数据库使用率很低,我不希望这个简单的操作产生冲突。然而,属于85个不同用户的85个文档都没有因冲突错误而更新,没有明显的原因。

以下是我使用的代码:

var _ = require('lodash');
var PouchDB = require('pouchdb');

var couchdbUrl = 'https://USER:PASS@DOMAIN.COM';

var usersDb = new PouchDB(`${couchdbUrl}/_users`, {
    skip_setup: true
});

usersDb.query('faulty_users/object_username', {
        include_docs: true
    })
    .then((userDocs) => {
        userDocs.rows
            .forEach(function(userDoc) {
                userDb = new PouchDB(`${couchdbUrl}/user%2F${userDoc.doc.hoodieId}`);

                userDb.get('accountvalues/default', {
                        conflicts: true
                    })
                    .then((doc) => {
                        console.log(doc._id, doc._rev, doc._conflicts);

                        doc.values.accountValues.username = userDoc.doc.name.replace(/^user\//, '');

                        userDb.put(doc)
                            .catch((e) => {
                                console.log(userDoc.doc.hoodieId, e);
                            });
                    });
            });
    });

我已经阅读并再次阅读了PouchDB的文档,但我无法找到我做错的事情。我希望这里的错误很明显: - )

0 个答案:

没有答案