in src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlAdapter.java [154:175]
public boolean deleteRecursive(String path) {
Bucket bucket = couchbaseClient.getBucket();
// fetch all descendants and self for deletion
Pattern descendantsAndSelf = Pattern.compile("^" + path + "(/.+)?$");
N1qlQuery query = N1qlQuery.simple(select("*")
.from(couchbaseClient.getBucketName())
.where("REGEXP_LIKE(`" + PN_PATH + "`, '" + descendantsAndSelf.pattern() + "')"),
N1QL_PARAMS);
N1qlQueryResult queryResult = bucket.query(query);
handleQueryError(queryResult);
final Iterator<N1qlQueryRow> results = queryResult.iterator();
boolean deletedAny = false;
while (results.hasNext()) {
JsonObject item = results.next().value();
JsonObject envelope = item.getObject(couchbaseClient.getBucketName());
String itemPath = envelope.getString(PN_PATH);
String itemCacheKey = CouchbaseKey.build(itemPath, cacheKeyPrefix);
bucket.remove(itemCacheKey);
deletedAny = true;
}
return deletedAny;
}