lte*_*ean 6 java mongodb morphia
我的文档具有以下结构:
{
"scores": [{
"scoreTitle": "environment",
"scoreValue": 3,
"scoreDescribe": "good"
}, {
"scoreTitle": "service",
"scoreValue": 3,
"scoreDescribe": "good"
}, {
"scoreTitle": "taste",
"scoreValue": 4,
"scoreDescribe": "good"
}]
}
Run Code Online (Sandbox Code Playgroud)
在mongo shell中,我可以使用以下查询来查找具有标题为"environment"且值大于2的分数的文档.
db.reviews.find({"scores":{"$elemMatch":{"scoreValue":{"$gt":2},"scoreTitle":"environment"}}})
Run Code Online (Sandbox Code Playgroud)
现在我想使用morphia来查询文档,在api doc中,fiter方法支持'elem'运算符,并且需要一个额外的查询条件对象,例如,查询具有标题为"的分数的文档"环境"和描述是"好":
Score score = new Score();// the criteria object, only support comparisons of equality
score.setScoreTitle("environment"); // title should be environment
score.setScoreDescribe("good"); // describe should be good
Query q = ds.createQuery(Review.class).filter("scores elem", score);
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何在查询条件中进行数值比较,也就是说,如何进行与mongo shell对应的效果相同的查询.
Morphia 代码库有大量测试,您可以在此处查看几种不同方法进行比较运算符的示例:
| 归档时间: |
|
| 查看次数: |
508 次 |
| 最近记录: |