Cómo obtener solo resultados coincidentes de un campo de documento de matriz en Mongo utilizando datos de Spring

estoy usandospring boot 1.5.1 yMongoDB version 3.4.6 .

Tengo un documento de mongo Hotel que tiene una lista de revisión.

losReview la clase tiene propiedaduserName.

@Document
public class Hotel {

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

Quiero buscar en todo el hotel por Review userName.

MiHotelRepository tienepublic List<Hotel> findByReviewsUserName(String userName);

Cuando llamo con el usuario 'Salman' -

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

Este método devuelve el resultado como a continuación:

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

Lo que quiero son las críticas solo de 'Salman', pero también está regresando para otros también.

¿Qué me estoy perdiendo o cómo hacerlo?

Lo que he notado es que si un usuario de una sola revisión coincide, devuelve la lista completa de revisiones que no quiero, quiero revisiones que he buscado por nombre.

Respuestas a la pregunta(2)

Su respuesta a la pregunta