我正在一个使用CouchDB
CouchBase lite
和的项目中工作Android
。我想使用过滤器功能,所以我在我的服务器端做:
{
"_id": "_design/filters",
"_rev": "xxxxxxxxxxxxxxxx",
"filters": {
"master": "function(doc, req) { if(true==doc.ismaster) { return true; } else { return false; }}",
"work": "function(doc, req) { if(true!=doc.ismaster) { return true; } else { return false; }}",
"workdata": "function(doc, req){if (true==doc.ismaster){return false;}if (req.query.device_num==doc.device_num){return true;}if (doc.type=='field_order'){return true;}if (req.query.device_num=='20' || req.query.device_num=='21' || req.query.device_num=='22' || req.query.device_num=='23'){return true;}return false;}"
}
}
在Android
我做的:
pullwork = work.createPullReplication(url);
pullwork.setAuthenticator(auth);
if (PreferenceManager.getTabletNumber() > 80 && PreferenceManager.getTabletNumber() < 90) {
pullwork.setFilter("filters/work");
}else {
pullwork.setFilter("filters/workdata");
但它不像我期望的那样工作,我总是只得到主复制,但从来没有得到工作复制或工作数据复制。
知道为什么吗?
当前不支持过滤器功能。请参阅Couchbase Lite 文档中的这一部分。(这是几周前才更新的,如果您看到旧版本,请见谅。)
您可能还想查看这个 GitHub 问题。您可以找到有关为什么不支持它的更多详细信息。本质上,现在,CouchDB 文档没有很好地描述实现兼容性所需的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句