Basta usar o
@Query
anotação nesse método. public interface CustomRepository extends MongoRepository<PracticeQuestion, String> {
@Query(value = "{ 'userId' : ?0, 'questions.questionID' : ?1 }", fields = "{ 'questions.questionID' : 1 }")
List<PracticeQuestion> findByUserIdAndQuestionsQuestionID(int userId, int questionID);
}
Adicionando os
fields
parte do @Query
anotação, você está dizendo ao Mongo para retornar apenas essa parte do documento. Cuidado, porém, ele ainda retorna o documento inteiro no mesmo formato - apenas faltando tudo o que você não especificou. Portanto, seu código ainda terá que retornar List<PracticeQuestion>
e você terá que fazer:foreach (PracticeQuestion pq : practiceQuestions) {
Question q = pq.getQuestions().get(0); // This should be your question.
}