java如何使用MongoRepository接口从spring mongo中的数组中获取指定的对象字段
Json对象
{
"_id" : ObjectId("5c07afde9bc2e9ab1dfb6c01"),
"rates" : [
{
"day" : "Mon",
"start" : "0900",
"end" : "1800",
"found " : "active"
},
{
"day" : "Tue",
"start" : "1800",
"end" : "0900",
"found " : "inactive"
},
{
"day" : "Fri",
"start" : "1800",
"end" : "0900",
"found " : "inactive"
}
]
}
我使用下面的链接从数组中获取一个对象:
get the specified fields from array
当我想
myRepositroy.findByDayAndTime("Fri"));
public MyStatus findByDayAndTime(String day) {
// i get required object
Query query = new Query();
query.addCriteria(Criteria.where("rates.day").is(day));
query.fields().include("rates.$");
return mongoTemplate.find(query, MyStatus.class);
}
调用存储库从包含多个字段的数组中查找所需对象
myRepositroy.findByDayAndTime("Fri","1800"));
下面是用于查询多个字段的方法,如
public MyStatus findByDayAndTime(String day,String start) {
Query query = new Query();
query.addCriteria(Criteria.where("rates.day").is(day).and("rates.start").is(start));
query.fields().include("rates.$");
return mongoTemplate.find(query, MyStatus.class);
}
但我得到的是作为输出的第二个索引数组对象,而不是第三个索引数组对象
如何通过使用带有“Fri”、“1800”等值的查询从数组中获取所需的唯一对象
# 1 楼答案
问题转化为疑问。用这个代码替换就行了
这对我有用。很高兴与mongodb医生合作官方文件 Projection Operator