docs: public final Optional<T> findFirstByQuery(String query, String sort, Object... params) {
          Find find = this.collection.find(query, params);
          if((sort != null) && !sort.isEmpty()) {
              find.sort(sort);
          }
          Iterable<T> as = find.limit(1).as(this.entityClass);
          Iterator<T> iterator = as.iterator();
          if(iterator.hasNext()) {
              return Optional.of(iterator.next());
          }
          return Optional.empty();
      }