Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何仅将有用数据从CouchDB传输到PockDB_Couchdb_Pouchdb - Fatal编程技术网

如何仅将有用数据从CouchDB传输到PockDB

如何仅将有用数据从CouchDB传输到PockDB,couchdb,pouchdb,Couchdb,Pouchdb,我试图将couchDB的最后一个版本复制到PockDB,但它是包含所有版本的transfer doc。最初的例子: var replicationOptions = { doc_ids: null }; this.$get = function (pouchDB, arrayUtils, $rootScope, modelUtils,appConfig) { function initDB() { userLocalDB = pouchDB("mobile_u

我试图将couchDB的最后一个版本复制到PockDB,但它是包含所有版本的transfer doc。最初的例子:

var replicationOptions = {
    doc_ids: null
};

this.$get = function (pouchDB, arrayUtils, $rootScope, modelUtils,appConfig) {

    function initDB() {
        userLocalDB = pouchDB("mobile_users", {
            revs_limit: 1,
            auto_compaction: true,
            adapter: 'cordova-sqlite',
            iosDatabaseLocation: 'Library',
            androidDatabaseImplementation: 2
        });
        userRemoteDB = pouchDB(appConfig.couchDBServerUrl+"mobile_users", {skipSetup: true});
        userRemoteDB.login("mobile", "fakepass");
    }...
复制代码:

function startReplication(username) {
        replicationOptions.doc_ids = [_prefixId + username];
        console.log("replicationOptions", replicationOptions)

        return userRemoteDB.replicate.to(userLocalDB, replicationOptions).$promise
            .then(null, null, function (progress) {
                console.log('user replication status', progress);
            })
            .then(function (result) {
                console.log('user replication resolved with', result);
                return true
            })
            .catch(function (reason) {
                console.log('user replication exception', reason);
                return startReplication(username);
            })
    }
console.log中的进度结果(“用户复制状态”,进度)

我一直在寻找答案,但任何解决方案都是有效的。我不想从couchDB转帐604个版本的25Kb文档。想想通过2g/3g连接传输的25 kb x 603的无用数据,帮我只传输有用的数据


OBS:Fauxton Compact&Clean在这个过程之前就已经使用了

您可以使用类似

从转储文件将文档加载到CouchDB/backdb


然后,像往常一样同步Bob的叔叔。

您是否在PockDB中进行更改,以同步到CouchDB?或者所有的更改都源于CouchDB,而PockDB的副本是只读的吗?双方都有更改,大多数更改都来自CouchDB。在这种情况下,额外的rev不是无用的数据;它们用于解决冲突。假设我的手机没有本地数据,并且是第一次复制,没有冲突需要解决,我只想将最后一次修订复制到我的本地谢谢你的提示。我将对iTunes进行测试,这是一个解决方法,因为我不希望加载转储文件,而是加载couchDB文档。为了使用paughdb加载实现这一点,我需要从这个结构中加载一个文件(CouchDB/paughdb),以便在包含它之后再加载。
user replication status Object {change: Object}
change: Object
doc_write_failures: 0
docs: Array(604)
docs_read: 604
docs_written: 604
errors: Array(0)
last_seq: 452349
ok: true
start_time: "2017-07-07T18:37:34.353Z"