我正在将DB A中的文档复制到DB B,每次DB A中的Doc到达DB BI时都想运行“存储过程”以从DB A中删除大部分字段(DB A是私有的,但是我希望公开的附件
到目前为止,我已经看到可以使用_changes feed(连续)然后在每个文档上运行'update'处理程序来实现这一点。
文档更新处理程序doc:https://wiki.apache.org/couchdb/Document_Update_Handlers
这似乎是CouchDB为我实现的......(我现在还不确定如何做到这一点)。
是否有类似“钩子”的东西可以在进入数据库的每个文件上运行?
==编辑==
似乎我想以某种方式在复制触发器中包含update handler命令?
答案 0 :(得分:1)
对于您可能的存储文档如何能够从CouchDB的过滤复制中受益,这听起来有些变化。您需要将附件存储在两个数据库之间可以等效复制(无需修改)的文档中。
如果这不是一个选项,那么您可以使用transform-pouchdb加PouchDB's .replicate.from()
方法来管理复制。
这个想法的一些快速伪代码看起来有点像这样:
var PouchDB = require('pouchdb');
PouchDB.plugin(require('transform-pouch'));
var dbA = new PouchDB('a'); // "a" could be a URL to CouchDB or Cloudant
var dbB = new PouchDB('b');
dbB.transform({
incoming: function (doc) {
// do something to the document before storage
return doc;
}
});
dbB.replicate.from(dbA);
从理论上讲,(或类似的东西)应该做你想要的......或者至少给你一个框架,你可以做你想要的。 ^ _ ^
希望有所帮助!