Отличный ответ от @barbakini, но это также может быть сделано без создания собственной реализации репозитория с Criteria, просто «опишите», какие поля вы хотели бы получить, где

ользуюspring boot 1.5.1 а такжеMongoDB version 3.4.6 .

У меня есть Монго документ Отель, в котором есть список отзывов.

Review класс имеет свойствоuserName.

@Document
public class Hotel {

    @Id
    private String id;
    private List<Review> reviews;

Я хочу найти все отели по отзыву userName.

мойHotelRepository имеетpublic List<Hotel> findByReviewsUserName(String userName);

Когда я звоню с пользователем "Салман" -

List<Hotel> list = this.hotelRepository.findByReviewsUserName(user);

этот метод возвращает результат, как показано ниже:

[
    {
        "id": "59b23c39c70ff63135f76b14",
        "name": "Signature",
        "reviews": [
            {
                "id": 1,
                "userName": "Salman",
                "rating": 8,
                "approved": true
            },
            {
                "id": 2,
                "userName": "Shahrukh",
                "rating": 5,
                "approved": false
            }
        ]
    }
]

Что я хочу, чтобы отзывы только о «Салман», но он также возвращается и для других.

Чего мне не хватает или как это сделать?

Что я заметил, так это то, что если один пользователь-рецензент совпал, он возвращает полный список рецензий, которые мне не нужны, мне нужны рецензии, которые я искал по имени.

Ответы на вопрос(2)

Ваш ответ на вопрос