redis / redis-om-spring

Spring Data Redis extensions for better search, documents models, and more
MIT License
572 stars 90 forks source link

Add exist/notExist predicated for EntityStream's Aggregations #421

Closed bsbodden closed 1 month ago

bsbodden commented 1 month ago

You should be able to do:

  @Test
  void testExistPredicate() {
    List<Single<Integer>> releasedFilms = entityStream.of(Film.class) //
      .load(Film$.RELEASE_YEAR) //
      .filter(Film$.RELEASE_YEAR.exists()) //
      .reduce(ReducerFunction.COUNT).as("released") //
      .toList(Integer.class);
    assertThat(releasedFilms).hasSize(1);
    assertThat(releasedFilms.get(0).getFirst()).isEqualTo(2);
  }

  @Test
  void testNotExistPredicate() {
    List<Single<Integer>> releasedFilms = entityStream.of(Film.class) //
      .load(Film$.RELEASE_YEAR) //
      .filter(Film$.RELEASE_YEAR.notExists()) //
      .reduce(ReducerFunction.COUNT).as("released") //
      .toList(Integer.class);
    assertThat(releasedFilms).hasSize(1);
    assertThat(releasedFilms.get(0).getFirst()).isEqualTo(1);
  }