Json Object
{
"_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"
}
]
}
Я использовал ссылку ниже, чтобы получить один из объектов из массива:
получить указанные поля из массива
Когда я запрашиваю как
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);
}
но я получаю в качестве выходного 2-го объекта индексного массива вместо 3-го объекта индексного массива.
Как получить единственный требуемый объект из массива, используя запрос со значениями вроде ("Fri", "1800 ")