mongodb - 如何查询不区分大小写并包含 Spring MongoTemplate

标签 mongodb spring-boot spring-data-mongodb mongotemplate spring-mongo

我在 MongoDB 中有像这样的 JSON 文档

{
  "os" : "Windows 10"
}

{
  "os" : "WINDOWS 8"
}

{
  "os" : "UBunTu 18.04"
}

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

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

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

最佳答案

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

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

关于mongodb - 如何查询不区分大小写并包含 Spring MongoTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62547181/

相关文章:

sql - 对于有竞争力的在线门票销售,您会建议什么数据库解决方案

php - Mongo Map Reduce 第一次

mongodb - Map Reduce 标记计数范围按日期和类别

java - Spring Boot 与 Apache Shiro

python - 如何在 Redis 中查找地理位置相近的文档,例如 MongoDB 中的 $near?

spring-boot - Spring Cloud Vault - 存储 Secret-Id 和 Role-Id 的最佳位置

spring-boot - Spring Boot 未加载 PropertySourceLoader

mongodb - 使用 ReadPreference=NEAREST 的 Mongos 路由

java - Spring Data MongoDB NotLike - 不支持的关键字

java - 如何在mongodb中获取两个用户之间的共同点