CouchDB:新建、修改或删除时创建/更新/删除

CouchDB:新建、修改或删除时创建/更新/删除,couchdb,Couchdb,我每天晚上都在进行数据同步,通过RESTAPI从源/主文件中取出完整的文档集,并更新从属目的地(CouchDB) 数据负载非常小,最多100个JSON文档。对于一些文档,master中的更新频率预计为每周1-2次 可能会发生以下变化: 文档被删除 添加文档 现有文档中的数据已更改 CouchDB是否提供任何开箱即用的批量操作,用于根据发送的文档集合创建/更新/删除文档,并自动检查文档是否是新的/更改的/删除的?如果不是,那么我自己实施这项计划的好方法是什么 编辑: 我刚刚发现了两个有用的np

我每天晚上都在进行数据同步,通过RESTAPI从源/主文件中取出完整的文档集,并更新从属目的地(CouchDB)

数据负载非常小,最多100个JSON文档。对于一些文档,master中的更新频率预计为每周1-2次

可能会发生以下变化:

  • 文档被删除
  • 添加文档
  • 现有文档中的数据已更改
CouchDB是否提供任何开箱即用的批量操作,用于根据发送的文档集合创建/更新/删除文档,并自动检查文档是否是新的/更改的/删除的?如果不是,那么我自己实施这项计划的好方法是什么

编辑: 我刚刚发现了两个有用的npm模块,用于比较源和目标中的json。对于那些对这个问题的解决感兴趣的人


由于您的数据集很小,我建议只使用

您只需使用
\u all\u docs
检索整个数据集,将其存储在内存中,然后执行“是否存在”和“已更改内容”检查。最后,只需通过
\u bulk\u docs
发送整个100个文档即可


如果您的CouchDB一直在增长(即:它并不总是100个文档),那么您可以随时编写一些视图,用于检查特定数据项的添加/更新。

那么您的源不是CouchDB或兼容的数据库?如果是的话,您可以使用复制,这正是您所描述的。不幸的是,我只能通过REST API访问源数据,我无法控制,而且它似乎也不是CouchDB。因此,检查是否存在以及是否更改的逻辑需要定制。CouchDB API不支持吗?另一个(有点离题)问题:您建议直接从NodeJ中的代码使用CouchDB API还是使用一些CouchDB节点模块?正确,您可以编写可以查询的视图,但这不是CouchDB本身的操作。我通常建议使用模块,从头开始编写自己的样板文件是不值得花时间的。有什么具体的模块值得推荐吗?没有,但它们都是可靠的库。