Py学习  »  MongoDB

Spring MongoDB数据元素匹配简单

user1955934 • 4 年前 • 229 次点击  
{ _id: 1, results: [ "tokyo", "japan" ] }
{ _id: 2, results: [ "sydney", "australia" ] }




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

如何使用SpringMongoDB数据查询条件转换这个简单的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

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37880
 
229 次点击  
文章 [ 1 ]  |  最新文章 4 年前
user2683814
Reply   •   1 楼
user2683814    5 年前

您可以在下面的查询中尝试。

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