如何使用 Spring MongoTemplate 查询不区分大小写并包含的内容

MAH*_*HIE 4 mongodb spring-mongo spring-data-mongodb spring-boot mongotemplate

我在 MongoDB 中有这样的 JSON 文档

{
  "os" : "Windows 10"
}

{
  "os" : "WINDOWS 8"
}

{
  "os" : "UBunTu 18.04"
}
Run Code Online (Sandbox Code Playgroud)

如何os使用 Spring MongoTemplate 不区分大小写并包含进行查询,以便我可以传递["windows", "ubuntu"] 并从数据库获取所有三个文档

我尝试过类似的方法但没有成功。

String osRegEx = String.join(" | ", new String[]{"windows", "ubuntu"});
query.addCriteria(Criteria.where("os").regex(osRegEx, "i"));
Run Code Online (Sandbox Code Playgroud)

MAH*_*HIE 5

它以这种方式工作......

String osRegEx = String.join("|", new String[]{"windows.*", "ubuntu.*"});
query.addCriteria(Criteria.where("os").regex("("+osRegEx+")", "i"));
Run Code Online (Sandbox Code Playgroud)