docs: @Override
      public <T> List<T> delete(@NonNull DocumentQuery query, @NonNull Class<T> domainClass,
                                @NonNull String collectionName) {
          Assert.notNull(query, "DocumentQuery should not be null.");
          Assert.notNull(domainClass, "domainClass should not be null.");
          Assert.hasText(collectionName, "collection should not be null, empty or only whitespaces");
  
          final List<Document> results = findDocuments(query, domainClass, collectionName);
          final List<String> partitionKeyName = getPartitionKeyNames(domainClass);
  
          results.forEach(d -> deleteDocument(d, partitionKeyName));
  
          return results.stream().map(d -> getConverter().read(domainClass, d)).collect(Collectors.toList());
      }