To elaborate on @matthew.groves answer.
I believe: Delete on server should be delete on server, rather than requiring three steps like get data from server, iterate over it on client side and finally for each record fire delete on the server again.
In this regards, I think old fashioned RDBMS were better all you need to do is ‘DELETE * from database where something=something’.
Query to be used: DELETE from b where META(b).id LIKE “%”
layer_name_prefix = cb_layer_key + "|" + "%"
query = ""
query = N1QLQuery('DELETE from `test-feature` b where META(b).id LIKE $1', layer_name_prefix)
except CouchbaseError, e:
To achieve the same thing: alternate query could be as below if you are storing ‘type’ and/or other meta data like ‘parent_id’.
DELETE from <bucket_name> where type=‘Feature’ and parent_id=8;
But I prefer to use first version of the query as it operates on key, and I believe Couchbase must have some internal indexes to operate/query faster on key (and other metadata).
I created stackoverflow answer here: http://stackoverflow.com/a/40250817/454023