Запросить документ со встроенным полем документа, используя репозиторий данных 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.

Другие вопросы по тегам