我想在吗啡中这样做。任何人都可以帮忙
Bson f1 = Filters.gt("score", 80);
Bson f2 = Filters.lt("score", 100);
Bson f3 = and (f1, f2);
MongoCursor<Document> c = collection.find(
elemMatch("grades", f3))
.iterator();
请注意以下内容不起作用
ds.find(Restaurant_M.class)
.field("grades.score")
.greaterThan(80)
.lessThan(100)
.asList();
我的目标是获得成绩子文档中得分仅为80和100之间的所有文档。它应该是$和$ gt:80和$ lt:100。我发布的morphia声明仅检查两个条件的每个单独得分。它没有检查$和中的所有分数。所以我得到的分数是例如130(因为它> 80)。
答案 0 :(得分:0)
您可能希望使用AND运算符来处理此问题:
Query<Restaurant_M> query = getDs().find(Restaurant_M.class);
query.and(query.criteria("grades.score").greaterThan(80), query.criteria("grades.score").lessThan(100));
List<Restaurant_M> orders = query.asList();
使用morphia版本1.2.0