美文网首页学习iOS专题那些开发的事
iOS 使用couchbaselite 与couchDB同步

iOS 使用couchbaselite 与couchDB同步

作者: 盛夏凉风 | 来源:发表于2015-03-30 14:50 被阅读1359次

    之前项目有一个需求,每天从服务器拿一首诗歌,然后加到本地数据库。加到本地数据库之后还要根据服务器对诗歌的增删改查,本地数据也要相应修改。如果用传统的接口方法增删改查,逻辑会很复杂。

    我就想,有没有一种方法,能像git管理代码一样同步本地数据库与服务器数据库,这样就简单多了,这时候chouchbaselite能满足我们的需求。

    大家可以从couchbaselite官网下载最新framework:http://www.couchbase.com/nosql-databases/couchbase-mobile

    导入framework,推荐用cocopod,不解释。

    就拿我们公司项目同步诗歌来说吧,首先,我们想要从couchDB上吧诗歌数据同步下来

    首先导入头文件和定义变量

    database顾名思义就是本地数据库,CBLReplication就是一个发送请求的类,这里定义了两个,_push和_pull,用过git的人都知道,一个代表提交,一个是拉下来的意思,如果我们只需要同步服务器的数据的话_pull就ok。_push是本地作修改再提交的时候会用到,等下会提到。

    创建database和请求

    kDatabaseName 就是你数据库名字,有一点要注意原文这样写道

    不能用大写字母,原因不明。

    CBLReplication的创建

    name和password就是couchDB的授权,kServerDbURL是couchDB数据库地址。最后用通知去回调,可以添加进度条。PS,如果不想同步整个库,只想同步其中几条的话,可以用CBLReplication的filter和documentIDs。documentIDs是一个数组,里面放你想同步字段的documentid,couchDB每条数据都有documentid。filter就是内容筛选。

    打印进度,SYNC idle为同步完成

    取出数据

    首先建立一个数据modle,couchbase里面提供了专门的modle类,然后再modle里面定义好接收的属性例如

    遍历rowEnum,然后每一条加进我们创建的model。poem就是我们所要的每一条诗歌包含的数据。如果想要取出的时候作筛选,可以用predicate属性去操作。

    增删改查

    这个很简单,看下api就可以了,对本地database做完操作想要提交上服务器,只需要生成一个push请求,然后[push start]就ok了。这里操作有空再写

    最后

    couchbaselite 去管理客户端根服务端的数据,原理跟管理代码一样,很简单。特别是一些数据增删改查,都不需要后台写接口,直接对数据库操作。没用过的可以用下,然后一起研究交流。

    weibo:http://weibo.com/u/1932188797/home?topnav=1&wvr=6

    相关文章

      网友评论

      • wokenshin:这篇文章能更新一下就好啦,现在的实现方式已经不一样了
        wokenshin:@盛夏凉风 谢谢你的回复。我已经在官网中找到了一些资料。:blush:
        盛夏凉风:@wokenshin 十分抱歉,已经好久没碰couchDB了
      • 一号线:你好,最近一个项目用到couchbase,做数据同步 和 全文检索 。但是现在做全文检索 执行[query run: &error] 发现非常耗时..很久很久的.. 总共有1w+数据

      本文标题:iOS 使用couchbaselite 与couchDB同步

      本文链接:https://www.haomeiwen.com/subject/adfwxttx.html