Вот так выглядит мой объект.
@Document("parent")
public class Parent {
@Id
private String id;
private String field-1;
private Map<String,Long> someMap;
}
{
"_id" : "parent-id",
"field-1" : "some value",
"someMap" : {
"category-5" : 123,
"category-4" : 456
}
}
Я хочу получить весь этот объект при поиске с помощью "category-5" или "category-4" . Я использую MongoRepository и SpringBoot .
Я попробовал следующий подход, но он не работает для меня
public interface ParentRepo extends MongoRepository<Parent, String> {
@Query("{someMap :{$in: [?0]}}")
List<Parent> findBySomeMap(String id);
}
или если кто-то может помочь мне преобразовать это в MongoRepository / @ Query метод, который был бы великолепен и высоко ценится. Цель состоит в том, чтобы передать CategoryId в качестве параметра для запроса
db.getCollection('parentCollection').find({"someMap.category-4" : {$exists:true}})
Этот метод возвращает ожидаемые результаты