Spring MongoDB 数据元素匹配简单
Spring MongoDB Data elemMatch Simple
{ _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")
);
但在我的问题中,我没有 "field"
更新:
我认为 Veeram 的答案在试用后会奏效
Criteria criteria =
Criteria.where("results").
elemMatch(
new Criteria().is("tokyo")
);
它没有 return 任何东西。我错过了什么吗?
当我检查查询对象时,它声明如下:
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));
试试这个
Criteria criteria = Criteria.where("results").regex(".*tokyo.*","i");
{ _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")
);
但在我的问题中,我没有 "field"
更新:
我认为 Veeram 的答案在试用后会奏效
Criteria criteria =
Criteria.where("results").
elemMatch(
new Criteria().is("tokyo")
);
它没有 return 任何东西。我错过了什么吗?
当我检查查询对象时,它声明如下:
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));
试试这个
Criteria criteria = Criteria.where("results").regex(".*tokyo.*","i");