pouchdb不会将所有文档同步到ouchdb

时间:2018-12-13 09:48:40

标签: couchdb pouchdb

我在网站上使用pouchdb,在服务器端使用couchdb。我使用pouchdb中的以下代码同步到couchdb

db.replicate.to(remoteDb ...

由于某些原因,其中一个文档未同步到couchdb,但所有其他文档均已成功同步。我可以看到丢失的文档存在于pouchdb上,但是我无法在coudhdb上对其进行罚款。我已经尝试过多次同步,但是没有一个工作。该问题仅发生在文档之一上。如何检查有关同步此文档的错误?同步失败的日志在哪里?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了功能,则从服务器复制 时,服务器端过滤器必须允许您的数据通过。将复制到服务器时,客户端过滤器必须允许您的数据通过。

在您的情况下,您需要验证数据确实可以通过客户端过滤器的假设。

假设我有一个这样的过滤器...

{
  "_id": "_design/post_processing",
  "_rev": "1-47235d8ded76c0ec3c3c49e5aae71f6f",
  "filters": {
    "by_request": "function(doc, req) { doc.data && doc.data.type && doc.data.type == 'Request' }"
  }
}

我的记录显然要通过,因为它们的数据类型为'request',对吧?

为检查这一点,我在启动复制器之前直接在代码中测试了我的假设。

const doc = {
  "_id": "Person_1_0000000000000339",
  "_rev": "2-86e5ce7d8b5b58dacd2fad68bcc02658",
  "data": {
    "pk": 339,
    "type": "request",
    "handler": "PersonUpdate"
    "mobile": "099-555-7685",
    "distributor": true,
    "email": "bill.gates@amazon.com",
  }
};

console.log('=========== HEY! Look here. Here I am! ================');
console.log(doc.data && doc.data.type && doc.data.type == 'Request');

db.replicate.to(remoteDb ...

糟糕。是错的我不知道为什么。