Basta usare @Query
annotazione su quel metodo.
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);
}
Aggiungendo i fields
parte di @Query
annotazione, stai dicendo a Mongo di restituire solo quella parte del documento. Attenzione però, restituisce comunque l'intero documento nello stesso formato, manca solo tutto ciò che non hai specificato. Quindi il tuo codice dovrà comunque restituire List<PracticeQuestion>
e dovrai fare:
foreach (PracticeQuestion pq : practiceQuestions) {
Question q = pq.getQuestions().get(0); // This should be your question.
}