regex - Spring MongoDB 数据 elemMatch 简单

标签 regex spring-data spring-data-mongodb spring-mongodb

{ _id: 1, results: [ "tokyo", "japan" ] }
{ _id: 2, results: [ "sydney", "australia" ] }




db.scores.find(
   { results: { $elemMatch: { $regex: *some regex* } } }
)

如何使用 spring mongodb 数据查询条件转换这个简单的 elemMatch 示例?

如果数组包含对象,我可以这样做
Criteria criteria = 
   Criteria.where("results").
   elemMatch(
      Criteria.where("field").is("tokyo")
   );

但在我的问题中,我没有“领域”

更新:

我认为 Veeram 的答案在尝试之后会起作用
Criteria criteria = 
   Criteria.where("results").
   elemMatch(
      new Criteria().is("tokyo")
   );

它不返回任何东西。我错过了什么吗?

当我检查查询对象时,它说明以下内容:
Query: { "setOfKeys" : { "$elemMatch" : { }}}, Fields: null, Sort: null

另一方面,如果我像上面一样使用 Criteria.where("field") 修改标准,
Query: { "setOfKeys" : { "$elemMatch" : { "field" : "tokyo"}}}, Fields: null, Sort: null

我得到了一些东西,但这不是我的数据的结构方式,结果是一个字符串数组而不是对象。
我实际上需要使用正则表达式,为简单起见,上面的示例使用 .is

最佳答案

您可以尝试以下查询。

Criteria criteria = Criteria.where("results").elemMatch(new Criteria().gte(80).lt(85));

关于regex - Spring MongoDB 数据 elemMatch 简单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52267601/

相关文章:

javascript - 如何根据特定条件搜索句子并替换?

javascript - 为什么正则表达式构造函数需要双重转义?

regex - 使用 vim 将缩进目录列表转换为完整路径

asp.net - 字段不应超过 4 个字符且字符应唯一

java - Spring Data返回空元素的List,但List有很多元素

Spring Data JPA 不适用于事务隔离 "READ_UNCOMMITTED"

java - Spring-Data-Neo4J::如何在关系中保存数组或枚举?

java - MongoDb 相当于 Spring Batch 中的编写器?

mongodb - 在 spring data mongo 中将列表转换为页面?

java - Spring数据: Define <mongo:options> using java based config