【发布时间】:2018-12-06 08:01:14
【问题描述】:
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") 等值的查询从数组中获取唯一需要的对象
【问题讨论】:
标签: java spring-boot spring-data-mongodb