Solo usa @Query
anotación en ese 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);
}
Agregando los fields
parte de @Query
anotación, le está diciendo a Mongo que solo devuelva esa parte del documento. Sin embargo, tenga cuidado, todavía devuelve el documento completo en el mismo formato, solo falta todo lo que no especificó. Por lo tanto, su código aún tendrá que devolver List<PracticeQuestion>
y tendrás que hacer:
foreach (PracticeQuestion pq : practiceQuestions) {
Question q = pq.getQuestions().get(0); // This should be your question.
}