JVM - collection.query.fetch()

Retrieve a page of results for a query. This is an alternative to collection.query.stream()

import io.nitric.Nitric;
import io.nitric.resources.CollectionPermission;

// A user class to store in the profiles collection
class User {
  String name;
  int age;

  public User(String name, int age) {
    this.name = name;
    this.age = age;
  }
}

public class Application {
  public static void main(String[] args) {
    var profiles = Nitric.INSTANCE.collection("profiles", User.class).with(CollectionPermission.Read);

    var profilesQuery = profiles.query();

    var results = profilesQuery.fetch();

    Nitric.INSTANCE.run();
  }
}

Examples

Paging through results from a query

import io.nitric.Nitric;
import io.nitric.resources.CollectionPermission;

class User {
  String name;
  int age;

  public User(String name, int age) {
    this.name = name;
    this.age = age;
  }
}

public class Application {
  public static void main(String[] args) {
    var profiles = Nitric.INSTANCE.collection("profiles", User.class).with(CollectionPermission.Read);

    var profileQuery = profiles.query();
    var results = profileQuery.fetch();
    var pagingToken = results.getPagingToken();

    do {
      results.getDocuments().forEach((doc) -> {
        System.out.println(doc.getContent());
      });

      if (pagingToken.size() > 0) {
        results = profileQuery.pagingFrom(pagingToken).fetch();
        pagingToken = results.getPagingToken();
      }
    } while (results.getPagingToken().size() > 0 && results.getDocuments().size() > 0);

    Nitric.INSTANCE.run();
  }
}

See also