0

我将我的 Spring Data Mongodb 响应式示例更新为最新的 Spring Boot(2.5.6),有一个findByKeyword方法可用于regex匹配帖子标题和内容。

 Flux<Post> findByKeyword(String q) {
    var reg = ".*" + q + ".*";
    return template.find(query(where("title").regex(reg).orOperator(where("content").regex(reg))),
        Post.class);
  }

并添加一个测试方法来验证它,它在最新版本中不起作用。

  public void testFindByKeyword() {
    this.postRepository.findByKeyword("title")
        .skip(0)
        .take(10)
        .log()
        .as(StepVerifier::create)
        .expectNextCount(10)
        .verifyComplete();
  }

在另一种方法findByTitleContains中,它没有使用orOperator并且效果很好。

我不确定orOperator过去的版本有什么变化,它在旧版本(Spring Boot 2.1 或 2.2)中运行良好。

4

0 回答 0