Запросить документ со встроенным полем документа, используя репозиторий данных Spring
Я новичок в Spring-data, так что извините, если мой вопрос к наивному
Я пытаюсь запросить документ, который выглядит так:
{
_id: 1,
name: "sue",
age: 19,
type: 1,
status: "P",
favorites: { artist: "Picasso", food: "pizza" },
finished: [ 17, 3 ],
badges: [ "blue", "black" ],
points: [
{ points: 85, bonus: 20 },
{ points: 85, bonus: 10 }
]
}
Я хотел сделать запрос, который дает мне список записей, который содержит favourites.artist="Picasso"
,
Я знаю, как это сделать, используя MongoTemplate
Я хотел сделать это с помощью MongoRepository
,
Я читал какой-то документ, который показывает запрос, как это
findByFavorites(Favorites favorites)
но я не смог найти ничего, с чем я мог бы запросить, используя поле встроенного документа.
1 ответ
Решение
Так должно быть
findByFavoritesArtist(@Param("favorites.artist") String artist);
Таким образом, вы просто объединяете имена свойств в пути к свойствам во встроенном объекте. Возможно, что приведенный выше запрос является избыточным, и вы можете пропустить аннотацию @Param.