首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CouchDB和Couchbase-lite同步和删除已删除的文档

从CouchDB和Couchbase-lite同步和删除已删除的文档
EN

Stack Overflow用户
提问于 2018-06-18 02:20:11
回答 2查看 1.2K关注 0票数 9

我目前在我的iOS和安卓应用程序中使用couchbase-lite从运行CouchDB的数据库中同步文件。

我经常删除不再需要的文件,我也希望从移动应用程序中删除相同的文件,但任何拉复制只拉出更新或新文件,而不会在移动应用程序上触发删除。

有没有办法从移动应用程序中删除不再存在于服务器数据库中的文档,而无需对移动应用程序进行完全清除,然后重新同步整个数据库?

EN

回答 2

Stack Overflow用户

发布于 2018-11-21 06:30:41

数据库类中有一个purgeDocument()方法。这将从本地数据库中删除目标文档-目标文档的服务器副本保持不变。如果文档稍后更新,则文档将在下一次复制时返回到本地客户端。

http://docs.couchbase.com/mobile/2.1/couchbase-lite-swift/Classes/Database.html

票数 0
EN

Stack Overflow用户

发布于 2020-03-03 20:11:11

您可以根据id从数据库中删除文档,具体操作如下:

代码语言:javascript
复制
try {
        for (Result result : docList) {
            String id = result.getString(0);
            Document doc = database.getDocument(id);
            database.delete(doc);
        }
    } catch (CouchbaseLiteException e) {
        e.printStackTrace();
    } 

要获得文档id,您必须查询如下内容:

代码语言:javascript
复制
Query query = QueryBuilder
    .select(SelectResult.expression(Meta.id), SelectResult.all())
    .from(DataSource.database(database))

ResultSet rs = query.execute();
    for (Result result : rs) {
        Dictionary data = result.getDictionary("db_name");
        Log.e("CouchbaseLite ", "document: " + data);
        Log.e("CouchbaseLite ", "id: " + result.getString(0));
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50899328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档