Ich arbeite in einem Projekt mit CouchDB
CouchBase lite
und Android
. Ich möchte eine filter Funktion verwenden, damit ich auf meinem Server Ende tue:Die Verwendung von Filtern auf couchDB funktioniert nicht
{
"_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;}"
}
}
Auf Android
ich tue:
pullwork = work.createPullReplication(url);
pullwork.setAuthenticator(auth);
if (PreferenceManager.getTabletNumber() > 80 && PreferenceManager.getTabletNumber() < 90) {
pullwork.setFilter("filters/work");
}else {
pullwork.setFilter("filters/workdata");
aber es funktioniert nicht, wie ich erwarte, und ich bin immer wieder bekommen nur die Masterreplikation, aber niemals die Arbeitsreplikation oder die Arbeitsdatenreplikation.
Irgendeine Idee warum?