【问题标题】:Couchbase filter on pull replication c#拉复制c#上的Couchbase过滤器
【发布时间】:2015-05-18 09:20:49
【问题描述】:

尝试在 Couchbase Lite 中添加拉取过滤器...

在设计文档中添加过滤器

"filters": {
       "user": "function(doc,req) { if(doc.type == 'user' && email == req.query.email) {return true;} return false;}"
   }

在 C# 复制代码中添加了以下代码:

pull.Filter = "myview/user";
pull.FilterParams = new Dictionary<string, object> { { EnumUtil.UserDocument.email.ToString (), App.user.email }};

过滤器有时会起作用,但并非总是如此......

如何正确添加拉取过滤器或使用 Couch 将用户特定数据复制到应用程序的任何其他方式?频道无济于事,因为我可能有很多用户,并且只需要为特定用户显示数据...

【问题讨论】:

  • 您在使用couchbase-lite-net 库吗?看起来您正试图从 CouchDB 拉到 Couchbase Lite。我认为 CB Lite 中的该用例不支持过滤器功能。我建议使用具有sync function 概念的同步网关来仅提取属于用户的文档。

标签: c# couchdb couchbase-lite


【解决方案1】:

为了在 Couchbase Lite 中进行过滤,参数值在 'Replication.filterParams' 属性中指定为字典,并传递到过滤器函数中,它只匹配具有指定给定所有者属性的文档。

也可以参考Replication Guide 以获取有关该主题的更深入示例和讨论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 2019-12-14
    相关资源
    最近更新 更多